diff --git a/safe-contracts/build/contracts/BaseSafe.json b/safe-contracts/build/contracts/BaseSafe.json deleted file mode 100644 index 4b1e1cd1..00000000 --- a/safe-contracts/build/contracts/BaseSafe.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "contractName": "BaseSafe", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50612884806100206000396000f3fe6080604052600436106100c25760003560e01c80638cff63551161007f578063e009cfde11610059578063e009cfde146104b1578063e318b52b14610522578063e75235b8146105b3578063f8dc5dd9146105de576100c2565b80638cff635514610382578063a0e67e2b146103d9578063b2494df314610445576100c2565b80630d582f13146100c45780632f54bf6e1461011f578063468721a714610188578063610b59251461029f578063694e80c3146102f057806385e332cd1461032b575b005b3480156100d057600080fd5b5061011d600480360360408110156100e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610659565b005b34801561012b57600080fd5b5061016e6004803603602081101561014257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa3565b604051808215151515815260200191505060405180910390f35b34801561019457600080fd5b50610285600480360360808110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101f257600080fd5b82018360208201111561020457600080fd5b8035906020019184600183028401116401000000008311171561022657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190505050610b75565b604051808215151515815260200191505060405180910390f35b3480156102ab57600080fd5b506102ee600480360360208110156102c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cab565b005b3480156102fc57600080fd5b506103296004803603602081101561031357600080fd5b81019080803590602001909291905050506110cb565b005b34801561033757600080fd5b50610340611247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038e57600080fd5b5061039761124c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e557600080fd5b506103ee611251565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610431578082015181840152602081019050610416565b505050509050019250505060405180910390f35b34801561045157600080fd5b5061045a6113e6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561049d578082015181840152602081019050610482565b505050509050019250505060405180910390f35b3480156104bd57600080fd5b50610520600480360360408110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561052e57600080fd5b506105b16004803603606081101561054557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a83565b005b3480156105bf57600080fd5b506105c8612148565b6040518082815260200191505060405180910390f35b3480156105ea57600080fd5b506106576004803603606081101561060157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612152565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156107475750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6107b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060035414610a9f57610a9e816110cb565b5b5050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610b6e5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610c3f5750600073ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610c94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806128296030913960400191505060405180910390fd5b610ca1858585855a6125dd565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610d995750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b6002548111156111aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061275b6023913960400191505060405180910390fd5b6001811015611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127d96024913960400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b6060806002546040519080825280602002602001820160405280156112855781602001602082028038833980820191505090505b5090506000809050600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113dd578083838151811061133457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112f3565b82935050505090565b606060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114f4576000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611452565b6060826040519080825280602002602001820160405280156115255781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461167857818184815181106115d057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061158f565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561176f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806127336028913960400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611b715750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d4e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b36026913960400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b806001600254031015612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061277e6035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561229e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b36026913960400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354146125d8576125d7816110cb565b5b505050565b60008060028111156125eb57fe5b8360028111156125f757fe5b141561261057612609868686856126f0565b90506126e7565b6001600281111561261d57fe5b83600281111561262957fe5b14156126415761263a868584612709565b90506126e6565b600061264c85612720565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f0905091905056fe496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465645468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64496e76616c696420707265764f776e65722c206f776e657220706169722070726f76696465645468726573686f6c64206e6565647320746f2062652067726561746572207468616e20304d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65a165627a7a72305820a5c374bf0c53644cbe17fe88989cac280240ce944364e947f9e6426e98d6b6810029", - "deployedBytecode": "0x6080604052600436106100c25760003560e01c80638cff63551161007f578063e009cfde11610059578063e009cfde146104b1578063e318b52b14610522578063e75235b8146105b3578063f8dc5dd9146105de576100c2565b80638cff635514610382578063a0e67e2b146103d9578063b2494df314610445576100c2565b80630d582f13146100c45780632f54bf6e1461011f578063468721a714610188578063610b59251461029f578063694e80c3146102f057806385e332cd1461032b575b005b3480156100d057600080fd5b5061011d600480360360408110156100e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610659565b005b34801561012b57600080fd5b5061016e6004803603602081101561014257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa3565b604051808215151515815260200191505060405180910390f35b34801561019457600080fd5b50610285600480360360808110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101f257600080fd5b82018360208201111561020457600080fd5b8035906020019184600183028401116401000000008311171561022657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190505050610b75565b604051808215151515815260200191505060405180910390f35b3480156102ab57600080fd5b506102ee600480360360208110156102c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cab565b005b3480156102fc57600080fd5b506103296004803603602081101561031357600080fd5b81019080803590602001909291905050506110cb565b005b34801561033757600080fd5b50610340611247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038e57600080fd5b5061039761124c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e557600080fd5b506103ee611251565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610431578082015181840152602081019050610416565b505050509050019250505060405180910390f35b34801561045157600080fd5b5061045a6113e6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561049d578082015181840152602081019050610482565b505050509050019250505060405180910390f35b3480156104bd57600080fd5b50610520600480360360408110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561052e57600080fd5b506105b16004803603606081101561054557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a83565b005b3480156105bf57600080fd5b506105c8612148565b6040518082815260200191505060405180910390f35b3480156105ea57600080fd5b506106576004803603606081101561060157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612152565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156107475750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6107b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18060035414610a9f57610a9e816110cb565b5b5050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610b6e5750600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610c3f5750600073ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610c94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806128296030913960400191505060405180910390fd5b610ca1858585855a6125dd565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610d995750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b6002548111156111aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061275b6023913960400191505060405180910390fd5b6001811015611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127d96024913960400191505060405180910390fd5b806003819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936003546040518082815260200191505060405180910390a150565b600181565b600181565b6060806002546040519080825280602002602001820160405280156112855781602001602082028038833980820191505090505b5090506000809050600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113dd578083838151811061133457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112f3565b82935050505090565b606060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146114f4576000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611452565b6060826040519080825280602002602001820160405280156115255781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461167857818184815181106115d057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061158f565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561176f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806127336028913960400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611b715750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d4e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611dc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b36026913960400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806127fd602c913960400191505060405180910390fd5b806001600254031015612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061277e6035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561229e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806127b36026913960400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600354146125d8576125d7816110cb565b5b505050565b60008060028111156125eb57fe5b8360028111156125f757fe5b141561261057612609868686856126f0565b90506126e7565b6001600281111561261d57fe5b83600281111561262957fe5b14156126415761263a868584612709565b90506126e6565b600061264c85612720565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f0905091905056fe496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465645468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64496e76616c696420707265764f776e65722c206f776e657220706169722070726f76696465645468726573686f6c64206e6565647320746f2062652067726561746572207468616e20304d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65a165627a7a72305820a5c374bf0c53644cbe17fe88989cac280240ce944364e947f9e6426e98d6b6810029", - "sourceMap": "371:694:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:694:2;;;;;;;", - "deployedSourceMap": "371:694:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:645:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2250:645:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2250:645:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6022:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6022:166:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6022:166:6;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2909:479:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2909:479:5;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2909:479:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2909:479:5;;;;;;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;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1207:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:540:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1207:540:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;5454:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5454:441:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5454:441:6;;;;;;;;;;;;;;;;;:::i;:::-;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6270:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6270:465:6;;;:::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;6270:465:6;;;;;;;;;;;;;;;;;3467:745:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3467:745:5;;;:::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;3467:745:5;;;;;;;;;;;;;;;;;2008:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:565:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2008:565:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4406:859:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4406:859:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4406:859:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5901:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5901:115:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3237:835;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3237:835:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3237:835:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2250:645;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:1:6;2413:19;;:5;:19;;;;:47;;;;;469:3;2436:24;;:5;:24;;;;2413:47;2405:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:1;2553:27;;:6;:13;2560:5;2553:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;2545:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:6;:23;469:3;2638:23;;;;;;;;;;;;;;;;;;;;;;;;;2622:6;:13;2629:5;2622:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2697:5;2671:6;:23;469:3;2671:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2712:10;;:12;;;;;;;;;;;;;2739:17;2750:5;2739:17;;;;;;;;;;;;;;;;;;;;;;2837:10;2824:9;;:23;2820:68;;2861:27;2877:10;2861:15;:27::i;:::-;2820:68;2250:645;;:::o;6022:166::-;6099:4;469:3;6126:24;;:5;:24;;;;:55;;;;;6179:1;6154:27;;:6;:13;6161:5;6154:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;6126:55;6119:62;;6022:166;;;:::o;2909:479:5:-;3048:12;539:3;3133:30;;:10;:30;;;;:67;;;;;3198:1;3167:33;;:7;:19;3175:10;3167:19;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;3133:67;3125:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3335:46;3343:2;3347:5;3354:4;3360:9;3371;3335:7;:46::i;:::-;3325:56;;2909:479;;;;;;:::o;1207:540::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1381:1:5;1354:29;;1362:6;1354:29;;;;:68;;;;;539:3;1387:35;;1395:6;1387:35;;;;1354:68;1346:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:1;1517:38;;:7;:24;1533:6;1517:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1509:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1626:7;:25;539:3;1626:25;;;;;;;;;;;;;;;;;;;;;;;;;1599:7;:24;1615:6;1599:24;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;1697:6;1661:7;:25;539:3;1661:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1719:21;1733:6;1719:21;;;;;;;;;;;;;;;;;;;;;;1207:540;:::o;5454:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:10:6;;5624;:24;;5616:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:1;5758:10;:15;;5750:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5836:10;5824:9;:22;;;;5861:27;5878:9;;5861:27;;;;;;;;;;;;;;;;;;5454:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6270:465::-;6336:16;6368:22;6407:10;;6393:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6393:25:6;;;;6368:50;;6462:13;6478:1;6462:17;;6489:20;6512:6;:23;469:3;6512:23;;;;;;;;;;;;;;;;;;;;;;;;;6489:46;;6545:162;469:3;6551:31;;:12;:31;;;6545:162;;6613:12;6598:5;6604;6598:12;;;;;;;;;;;;;:27;;;;;;;;;;;6654:6;:20;6661:12;6654:20;;;;;;;;;;;;;;;;;;;;;;;;;6639:35;;6688:8;;;;;;;6545:162;;;6723:5;6716:12;;;;;6270:465;:::o;3467:745:5:-;3534:16;3600:19;3622:1;3600:23;;3633:21;3657:7;:25;539:3;3657:25;;;;;;;;;;;;;;;;;;;;;;;;;3633:49;;3692:132;539:3;3698:33;;:13;:33;;;3692:132;;3763:7;:22;3771:13;3763:22;;;;;;;;;;;;;;;;;;;;;;;;;3747:38;;3799:14;;;;;;;3692:132;;;3833:22;3872:11;3858:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3858:26:5;;;;3833:51;;3942:1;3928:15;;3969:7;:25;539:3;3969:25;;;;;;;;;;;;;;;;;;;;;;;;;3953:41;;4004:180;539:3;4010:33;;:13;:33;;;4004:180;;4080:13;4059:5;4065:11;4059:18;;;;;;;;;;;;;:34;;;;;;;;;;;4123:7;:22;4131:13;4123:22;;;;;;;;;;;;;;;;;;;;;;;;;4107:38;;4159:14;;;;;;;4004:180;;;4200:5;4193:12;;;;;3467:745;:::o;2008:565::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2230:1:5;2203:29;;2211:6;2203:29;;;;:68;;;;;539:3;2236:35;;2244:6;2236:35;;;;2203:68;2195:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:6;2325:47;;:7;:28;2341:10;2325:28;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;2317:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2458:7;:24;2474:6;2458:24;;;;;;;;;;;;;;;;;;;;;;;;;2427:7;:28;2443:10;2427:28;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;2527:1;2492:7;:24;2508:6;2492:24;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2544:22;2559:6;2544:22;;;;;;;;;;;;;;;;;;;;;;2008:565;;:::o;4406:859:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4597:1:6;4577:22;;:8;:22;;;;:53;;;;;469:3;4603:27;;:8;:27;;;;4577:53;4569:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4751:1;4723:30;;:6;:16;4730:8;4723:16;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;4715:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:1;4886:22;;:8;:22;;;;:53;;;;;469:3;4912:27;;:8;:27;;;;4886:53;4878:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5013:8;4992:29;;:6;:17;4999:9;4992:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4984:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5093:6;:16;5100:8;5093:16;;;;;;;;;;;;;;;;;;;;;;;;;5074:6;:16;5081:8;5074:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5139:8;5119:6;:17;5126:9;5119:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5184:1;5157:6;:16;5164:8;5157:16;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5201:22;5214:8;5201:22;;;;;;;;;;;;;;;;;;;;;;5238:20;5249:8;5238:20;;;;;;;;;;;;;;;;;;;;;;4406:859;;;:::o;5901:115::-;5970:7;6000:9;;5993:16;;5901:115;:::o;3237:835::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:10:6;3458:1;3445:10;;:14;:28;;3437:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3646:1;3629:19;;:5;:19;;;;:47;;;;;469:3;3652:24;;:5;:24;;;;3629:47;3621:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3750:5;3729:26;;:6;:17;3736:9;3729:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3721:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3828:6;:13;3835:5;3828:13;;;;;;;;;;;;;;;;;;;;;;;;;3808:6;:17;3815:9;3808:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3875:1;3851:6;:13;3858:5;3851:13;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3887:10;;:12;;;;;;;;;;;;;;3914:19;3927:5;3914:19;;;;;;;;;;;;;;;;;;;;;;4014:10;4001:9;;:23;3997:68;;4038:27;4054:10;4038:15;:27::i;:::-;3997:68;3237:835;;;:::o;313:564:3:-;451:12;496:19;483:32;;;;;;;;:9;:32;;;;;;;;;479:392;;;539:35;551:2;555:5;562:4;568:5;539:11;:35::i;:::-;529:45;;479:392;;;606:27;593:40;;;;;;;;:9;:40;;;;;;;;;589:282;;;657:36;677:2;681:4;687:5;657:19;:36::i;:::-;647:46;;589:282;;;722:19;744;758:4;744:13;:19::i;:::-;722:41;;810:1;787:25;;:11;:25;;;;777:35;;831:29;848:11;831:29;;;;;;;;;;;;;;;;;;;;;;589:282;;479:392;313:564;;;;;;;:::o;883:316::-;999:12;1181:1;1178;1171:4;1165:11;1158:4;1152;1148:15;1141:5;1137:2;1130:5;1125:58;1114:69;;1100:93;;;;;;:::o;1205:310::-;1314:12;1497:1;1494;1487:4;1481:11;1474:4;1468;1464:15;1460:2;1453:5;1440:59;1429:70;;1415:94;;;;;:::o;1521:268::-;1597:19;1767:4;1761:11;1754:4;1748;1744:15;1741:1;1734:39;1719:54;;1705:78;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract BaseSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setupSafe(address[] memory _owners, uint256 _threshold, address to, bytes memory data)\n internal\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "exportedSymbols": { - "BaseSafe": [ - 863 - ] - }, - "id": 864, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 832, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 833, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1021, - "src": "24:22:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 834, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1331, - "src": "47:29:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 835, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1797, - "src": "77:28:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 836, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1330, - "src": "392:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 837, - "nodeType": "InheritanceSpecifier", - "src": "392:13:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 838, - "name": "OwnerManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1796, - "src": "407:12:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 839, - "nodeType": "InheritanceSpecifier", - "src": "407:12:2" - } - ], - "contractDependencies": [ - 975, - 1330, - 1796, - 1810, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 863, - "linearizedBaseContracts": [ - 863, - 1796, - 1330, - 975, - 1810, - 1881 - ], - "name": "BaseSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 861, - "nodeType": "Block", - "src": "857:206:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "879:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 853, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 844, - "src": "888:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "867:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "867:32:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 855, - "nodeType": "ExpressionStatement", - "src": "867:32:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 857, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "1047:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 858, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "1051:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 856, - "name": "setupModules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "1034:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1034:22:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "1034:22:2" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 862, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupSafe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 842, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "759:24:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "759:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 841, - "length": null, - "nodeType": "ArrayTypeName", - "src": "759:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 844, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "785:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 843, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "785:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 846, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "805:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "805:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 848, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "817:17:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 847, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "817:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "758:77:2" - }, - "returnParameters": { - "id": 850, - "nodeType": "ParameterList", - "parameters": [], - "src": "857:0:2" - }, - "scope": 863, - "src": "740:323:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 864, - "src": "371:694:2" - } - ], - "src": "0:1066:2" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "exportedSymbols": { - "BaseSafe": [ - 863 - ] - }, - "id": 864, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 832, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 833, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1021, - "src": "24:22:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 834, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1331, - "src": "47:29:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "./OwnerManager.sol", - "id": 835, - "nodeType": "ImportDirective", - "scope": 864, - "sourceUnit": 1797, - "src": "77:28:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 836, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1330, - "src": "392:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 837, - "nodeType": "InheritanceSpecifier", - "src": "392:13:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 838, - "name": "OwnerManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1796, - "src": "407:12:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 839, - "nodeType": "InheritanceSpecifier", - "src": "407:12:2" - } - ], - "contractDependencies": [ - 975, - 1330, - 1796, - 1810, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Base Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 863, - "linearizedBaseContracts": [ - 863, - 1796, - 1330, - 975, - 1810, - 1881 - ], - "name": "BaseSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 861, - "nodeType": "Block", - "src": "857:206:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "879:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 853, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 844, - "src": "888:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "setupOwners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "867:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "867:32:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 855, - "nodeType": "ExpressionStatement", - "src": "867:32:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 857, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 846, - "src": "1047:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 858, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 848, - "src": "1051:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 856, - "name": "setupModules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "1034:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1034:22:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "1034:22:2" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 862, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupSafe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 842, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "759:24:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "759:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 841, - "length": null, - "nodeType": "ArrayTypeName", - "src": "759:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 844, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "785:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 843, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "785:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 846, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "805:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "805:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 848, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "817:17:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 847, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "817:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "758:77:2" - }, - "returnParameters": { - "id": 850, - "nodeType": "ParameterList", - "parameters": [], - "src": "857:0:2" - }, - "scope": 863, - "src": "740:323:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 864, - "src": "371:694:2" - } - ], - "src": "0:1066:2" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.619Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json deleted file mode 100644 index 80abd3d8..00000000 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ /dev/null @@ -1,1283 +0,0 @@ -{ - "contractName": "CreateAndAddModules", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proxyFactory", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "createAndAddModules", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610296806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806360df7f581461003b578063610b592514610116575b600080fd5b6101146004803603604081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561008e57600080fd5b8201836020820111156100a057600080fd5b803590602001918460018302840111640100000000831117156100c257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061015a565b005b6101586004803603602081101561012c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610265565b005b600081519050600080600090505b8281101561025e5780840160200151818501604001604051600060208285858c5af4141561019557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561024157600080fd5b505af1158015610255573d6000803e3d6000fd5b50505050610168565b5050505050565b600080fdfea165627a7a72305820cf78eb6a3c4766458d185a44ac562343bd067af6d612e189bab5c6d76b9cd0970029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806360df7f581461003b578063610b592514610116575b600080fd5b6101146004803603604081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561008e57600080fd5b8201836020820111156100a057600080fd5b803590602001918460018302840111640100000000831117156100c257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061015a565b005b6101586004803603602081101561012c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610265565b005b600081519050600080600090505b8281101561025e5780840160200151818501604001604051600060208285858c5af4141561019557600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561024157600080fd5b505af1158015610255573d6000803e3d6000fd5b50505050610168565b5050505050565b600080fdfea165627a7a72305820cf78eb6a3c4766458d185a44ac562343bd067af6d612e189bab5c6d76b9cd0970029", - "sourceMap": "250:1464:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1464:15;;;;;;;", - "deployedSourceMap": "250:1464:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1464:15;;;;;;;;;;;;;;;;;;;;;;;;820:892;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;820:892:15;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;820:892:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;820:892:15;;;;;;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;820:892:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;820:892:15;;;;;;;;;;;;;;;:::i;:::-;;410:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;410:81:15;;;;;;;;;;;;;;;;;;;:::i;:::-;;820:892;919:14;936:4;:11;919:28;;957:13;980:9;992:1;980:13;;1003:703;1014:6;1010:1;:10;1003:703;;;1182:1;1176:4;1172:12;1166:4;1162:23;1156:30;1242:1;1236:4;1232:12;1226:4;1222:23;1283:4;1277:11;1390:1;1383:4;1375:6;1356:17;1343:11;1329:12;1324:3;1311:77;1308:84;1305:2;;;1405:1;1402;1395:12;1305:2;1455:42;1446:6;1440:13;1436:62;1426:72;;1636:4;1629;1622;1603:17;1599:28;1595:39;1591:50;1585:4;1581:61;1578:1;1574:69;1569:74;;1113:544;;;1670:4;:17;;;1688:6;1670:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1670:25:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1670:25:15;;;;1003:703;;;820:892;;;;;:::o;410:81::-;476:8;;", - "source": "pragma solidity ^0.5.0;\nimport \"../base/Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes memory data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "exportedSymbols": { - "CreateAndAddModules": [ - 2125 - ] - }, - "id": 2126, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2082, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2083, - "nodeType": "ImportDirective", - "scope": 2126, - "sourceUnit": 1021, - "src": "24:28:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2125, - "linearizedBaseContracts": [ - 2125 - ], - "name": "CreateAndAddModules", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "466:25:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2088, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4371, - "src": "476:6:15", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "476:8:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2090, - "nodeType": "ExpressionStatement", - "src": "476:8:15" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2085, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "432:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 2084, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "432:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:15:15" - }, - "returnParameters": { - "id": 2087, - "nodeType": "ParameterList", - "parameters": [], - "src": "466:0:15" - }, - "scope": 2125, - "src": "410:81:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2123, - "nodeType": "Block", - "src": "909:803:15", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "919:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "919:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2103, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "936:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "936:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "919:28:15" - }, - { - "assignments": [ - 2105 - ], - "declarations": [ - { - "constant": false, - "id": 2105, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "957:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 2104, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "957:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2106, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "957:13:15" - }, - { - "assignments": [ - 2108 - ], - "declarations": [ - { - "constant": false, - "id": 2108, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "980:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "980:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2110, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "992:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "980:13:15" - }, - { - "body": { - "id": 2121, - "nodeType": "Block", - "src": "1022:684:15", - "statements": [ - { - "externalReferences": [ - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1569:1:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2096, - "isOffset": false, - "isSlot": false, - "src": "1176:4:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1182:1:15", - "valueSize": 1 - } - }, - { - "module": { - "declaration": 2105, - "isOffset": false, - "isSlot": false, - "src": "1426:6:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2096, - "isOffset": false, - "isSlot": false, - "src": "1236:4:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1242:1:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1578:1:15", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 2094, - "isOffset": false, - "isSlot": false, - "src": "1329:12:15", - "valueSize": 1 - } - } - ], - "id": 2114, - "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1104:570:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2118, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "1688:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 2115, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4410, - "src": "1670:4:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$2125", - "typeString": "contract CreateAndAddModules" - } - }, - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "enableModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 2092, - "src": "1670:17:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 2119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1670:25:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2120, - "nodeType": "ExpressionStatement", - "src": "1670:25:15" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2111, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2108, - "src": "1010:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2112, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "1014:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1010:10:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2122, - "nodeType": "WhileStatement", - "src": "1003:703:15" - } - ] - }, - "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 2124, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createAndAddModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 2124, - "src": "849:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "849:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2096, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2124, - "src": "871:17:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2095, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "871:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "848:41:15" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [], - "src": "909:0:15" - }, - "scope": 2125, - "src": "820:892:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2126, - "src": "250:1464:15" - } - ], - "src": "0:1715:15" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", - "exportedSymbols": { - "CreateAndAddModules": [ - 2125 - ] - }, - "id": 2126, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2082, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2083, - "nodeType": "ImportDirective", - "scope": 2126, - "sourceUnit": 1021, - "src": "24:28:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2125, - "linearizedBaseContracts": [ - 2125 - ], - "name": "CreateAndAddModules", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "466:25:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2088, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4371, - "src": "476:6:15", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "476:8:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2090, - "nodeType": "ExpressionStatement", - "src": "476:8:15" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2085, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "432:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 2084, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "432:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "431:15:15" - }, - "returnParameters": { - "id": 2087, - "nodeType": "ParameterList", - "parameters": [], - "src": "466:0:15" - }, - "scope": 2125, - "src": "410:81:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2123, - "nodeType": "Block", - "src": "909:803:15", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "length", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "919:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "919:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2103, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "936:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "936:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "919:28:15" - }, - { - "assignments": [ - 2105 - ], - "declarations": [ - { - "constant": false, - "id": 2105, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "957:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 2104, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "957:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2106, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "957:13:15" - }, - { - "assignments": [ - 2108 - ], - "declarations": [ - { - "constant": false, - "id": 2108, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2123, - "src": "980:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "980:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2110, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "992:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "980:13:15" - }, - { - "body": { - "id": 2121, - "nodeType": "Block", - "src": "1022:684:15", - "statements": [ - { - "externalReferences": [ - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1569:1:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2096, - "isOffset": false, - "isSlot": false, - "src": "1176:4:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1182:1:15", - "valueSize": 1 - } - }, - { - "module": { - "declaration": 2105, - "isOffset": false, - "isSlot": false, - "src": "1426:6:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 2096, - "isOffset": false, - "isSlot": false, - "src": "1236:4:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1242:1:15", - "valueSize": 1 - } - }, - { - "i": { - "declaration": 2108, - "isOffset": false, - "isSlot": false, - "src": "1578:1:15", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 2094, - "isOffset": false, - "isSlot": false, - "src": "1329:12:15", - "valueSize": 1 - } - } - ], - "id": 2114, - "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", - "src": "1104:570:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2118, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "1688:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 2115, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4410, - "src": "1670:4:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$2125", - "typeString": "contract CreateAndAddModules" - } - }, - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "enableModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 2092, - "src": "1670:17:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 2119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1670:25:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2120, - "nodeType": "ExpressionStatement", - "src": "1670:25:15" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2111, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2108, - "src": "1010:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2112, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "1014:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1010:10:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2122, - "nodeType": "WhileStatement", - "src": "1003:703:15" - } - ] - }, - "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 2124, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createAndAddModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 2124, - "src": "849:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "849:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2096, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2124, - "src": "871:17:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2095, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "871:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "848:41:15" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [], - "src": "909:0:15" - }, - "scope": 2125, - "src": "820:892:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2126, - "src": "250:1464:15" - } - ], - "src": "0:1715:15" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": { - "1": { - "links": {}, - "events": {}, - "address": "0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36", - "updated_at": 1555073253732 - }, - "4": { - "links": {}, - "events": {}, - "address": "0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36", - "updated_at": 1555073253784 - }, - "5": { - "links": {}, - "events": {}, - "address": "0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36", - "updated_at": 1555073253862 - }, - "42": { - "links": {}, - "events": {}, - "address": "0x1a56aE690ab0818aF5cA349b7D21f1d7e76a3d36", - "updated_at": 1555073253823 - } - }, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.635Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json deleted file mode 100644 index 89fe95f0..00000000 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ /dev/null @@ -1,6901 +0,0 @@ -{ - "contractName": "DailyLimitModule", - "abi": [ - { - "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": "", - "type": "address" - } - ], - "name": "dailyLimits", - "outputs": [ - { - "name": "dailyLimit", - "type": "uint256" - }, - { - "name": "spentToday", - "type": "uint256" - }, - { - "name": "lastDay", - "type": "uint256" - } - ], - "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": "tokens", - "type": "address[]" - }, - { - "name": "_dailyLimits", - "type": "uint256[]" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "dailyLimit", - "type": "uint256" - } - ], - "name": "changeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "executeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "today", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061124f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806381c5e03b1161006657806381c5e03b146102e0578063a3f4df7e1461032e578063b74e452b146103b1578063d7bffc92146103cf578063ffa1ad741461043557610093565b806328814f0314610098578063481c6a75146101e457806363bae7c31461022e5780637de7edef1461029c575b600080fd5b6101e2600480360360408110156100ae57600080fd5b81019080803590602001906401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460208302840111640100000000831117156100ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184602083028401116401000000008311171561019357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506104b8565b005b6101ec61054e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029a6004803603606081101561024457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610574565b005b6102de600480360360208110156102b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ceb565b005b61032c600480360360408110156102f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e5a565b005b610336610f4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037657808201518184015260208101905061035b565b50505050905090810190601f1680156103a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b9610f84565b6040518082815260200191505060405180910390f35b610411600480360360208110156103e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9a565b60405180848152602001838152602001828152602001935050505060405180910390f35b61043d610fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047d578082015181840152602081019050610462565b50505050905090810190601f1680156104aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c0610ffd565b60008090505b8251811015610549578181815181106104db57fe5b6020026020010151600260008584815181106104f357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104c6565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561061357600080fd5b505afa158015610627573d6000803e3d6000fd5b505050506040513d602081101561063d57600080fd5b81019080805190602001909291905050506106a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111d96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b600081116107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107c68382611104565b610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a4357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7838360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095a57fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505050506040513d60208110156109bb57600080fd5b8101908080519060200190929190505050610a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610ce6565b60608282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ba857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610be8578082015181840152602081019050610bcd565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b8101908080519060200190929190505050610ce4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b505b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111fe6026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111b56024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111fe6026913960400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040518060400160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281610f9257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611155610f84565b111561117657611163610f84565b8160020181905550600081600101819055505b806000015483826001015401111580156111995750806001015483826001015401115b156111a85760019150506111ae565b60009150505b9291505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e65724d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058206f3fff3396023e98874906bf89570752c00f7811b24206a17fe11c147db4bcad0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c806381c5e03b1161006657806381c5e03b146102e0578063a3f4df7e1461032e578063b74e452b146103b1578063d7bffc92146103cf578063ffa1ad741461043557610093565b806328814f0314610098578063481c6a75146101e457806363bae7c31461022e5780637de7edef1461029c575b600080fd5b6101e2600480360360408110156100ae57600080fd5b81019080803590602001906401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460208302840111640100000000831117156100ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184602083028401116401000000008311171561019357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506104b8565b005b6101ec61054e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029a6004803603606081101561024457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610574565b005b6102de600480360360208110156102b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ceb565b005b61032c600480360360408110156102f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e5a565b005b610336610f4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561037657808201518184015260208101905061035b565b50505050905090810190601f1680156103a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103b9610f84565b6040518082815260200191505060405180910390f35b610411600480360360208110156103e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9a565b60405180848152602001838152602001828152602001935050505060405180910390f35b61043d610fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047d578082015181840152602081019050610462565b50505050905090810190601f1680156104aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104c0610ffd565b60008090505b8251811015610549578181815181106104db57fe5b6020026020010151600260008584815181106104f357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104c6565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561061357600080fd5b505afa158015610627573d6000803e3d6000fd5b505050506040513d602081101561063d57600080fd5b81019080805190602001909291905050506106a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806111d96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b600081116107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107c68382611104565b610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a4357600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7838360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095a57fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561099157600080fd5b505af11580156109a5573d6000803e3d6000fd5b505050506040513d60208110156109bb57600080fd5b8101908080519060200190929190505050610a3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610ce6565b60608282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ba857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610be8578082015181840152602081019050610bcd565b50505050905090810190601f168015610c155780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b8101908080519060200190929190505050610ce4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b505b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d91576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111fe6026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111b56024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111fe6026913960400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040518060400160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281610f9257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611155610f84565b111561117657611163610f84565b8160020181905550600081600101819055505b806000015483826001015401111580156111995750806001015483826001015401115b156111a85760019150506111ae565b60009150505b9291505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e65724d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058206f3fff3396023e98874906bf89570752c00f7811b24206a17fe11c147db4bcad0029", - "sourceMap": "318:3324:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:3324:18;;;;;;;", - "deployedSourceMap": "318:3324:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:3324:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:236;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;940:236:18;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;940:236:18;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;940:236:18;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;940:236:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;940:236:18;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;940:236:18;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;940:236:18;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;940:236:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;940:236:18;;;;;;;;;;;;;;;:::i;:::-;;270:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1926:1014:18;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1926:1014:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;1404:158:18;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1404:158:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;361:50;;;:::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;361:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3524:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;535:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;535:50:18;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;417: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;417:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:236;1040:12;:10;:12::i;:::-;1067:9;1079:1;1067:13;;1062:107;1086:6;:13;1082:1;:17;1062:107;;;1154:12;1167:1;1154:15;;;;;;;;;;;;;;1118:11;:22;1130:6;1137:1;1130:9;;;;;;;;;;;;;;1118:22;;;;;;;;;;;;;;;:33;;:51;;;;1101:3;;;;;;;1062:107;;;;940:236;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1926:1014:18:-;2131:7;;;;;;;;;;;2110:38;;;2149:10;2110:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2110:50:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2110:50:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2110:50:18;;;;;;;;;;;;;;;;2102:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2234:1;2220:16;;:2;:16;;;;2212:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2295:1;2286:6;:10;2278:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2406:27;2419:5;2426:6;2406:12;:27::i;:::-;2398:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:6;2476:11;:18;2488:5;2476:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2546:1;2529:19;;:5;:19;;;2525:409;;;2572:7;;;;;;;;;;;:33;;;2606:2;2610:6;2622:19;2572:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2572:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2572:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2572:70:18;;;;;;;;;;;;;;;;2564:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2525:409;;;2710:17;2783:2;2787:6;2730:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2730:64:18;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2730:64:18;2710:84;;2816:7;;;;;;;;;;;:33;;;2850:5;2857:1;2860:4;2866:19;2816:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2816:70:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2816:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2816:70:18;;;;;;;;;;;;;;;;2808:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2525:409;;1926:1014;;;:::o;626:257:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o;1404:158:18:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1545:10:18;1513:11;:18;1525:5;1513:18;;;;;;;;;;;;;;;:29;;:42;;;;1404:158;;:::o;361:50::-;;;;;;;;;;;;;;;;;;;:::o;3524:116::-;3586:4;3626:6;3620:3;:12;;;;;;3613:3;:20;3606:27;;3524:116;:::o;535:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;417:40::-;;;;;;;;;;;;;;;;;;;:::o;442:309:4:-;664:1;636:30;;644:7;;;;;;;;;;;636:30;;;628:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:10;709:7;;:35;;;;;;;;;;;;;;;;;;442:309::o;2946:486:18:-;3033:4;3053:29;3085:11;:18;3097:5;3085:18;;;;;;;;;;;;;;;3053:50;;3127:10;:18;;;3117:7;:5;:7::i;:::-;:28;3113:126;;;3182:7;:5;:7::i;:::-;3161:10;:18;;:28;;;;3227:1;3203:10;:21;;:25;;;;3113:126;3286:10;:21;;;3276:6;3252:10;:21;;;:30;:55;;:126;;;;;3357:10;:21;;;3348:6;3324:10;:21;;;:30;:54;3252:126;3248:155;;;3399:4;3392:11;;;;;3248:155;3420:5;3413:12;;;2946:486;;;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.1.0\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] memory tokens, uint256[] memory _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(address(manager)).isOwner(msg.sender), \"Method can only be called by an owner\");\n require(to != address(0), \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == address(0)) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if (dailyLimit.spentToday + amount <= dailyLimit.dailyLimit && \n dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "exportedSymbols": { - "DailyLimitModule": [ - 2393 - ] - }, - "id": 2394, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2150, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:18" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2151, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1021, - "src": "24:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2152, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1331, - "src": "53:35:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2153, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1797, - "src": "89:34:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2154, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1804, - "src": "124:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2155, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "347:6:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2156, - "nodeType": "InheritanceSpecifier", - "src": "347:6:18" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2393, - "linearizedBaseContracts": [ - 2393, - 1020, - 1839, - 1881 - ], - "name": "DailyLimitModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2159, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "361:50:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2157, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "361:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "391:20:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", - "typeString": "literal_string \"Daily Limit Module\"" - }, - "value": "Daily Limit Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2162, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "417:40:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2160, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "417:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "450:7:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2166, - "name": "dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "535:50:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "typeName": { - "id": 2165, - "keyType": { - "id": 2163, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "544:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "535:31:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "valueType": { - "contractScope": null, - "id": 2164, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2173, - "src": "555:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DailyLimitModule.DailyLimit", - "id": 2173, - "members": [ - { - "constant": false, - "id": 2168, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "620:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2167, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "620:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2170, - "name": "spentToday", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "648:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "648:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2172, - "name": "lastDay", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "676:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "676:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "DailyLimit", - "nodeType": "StructDefinition", - "scope": 2393, - "src": "592:106:18", - "visibility": "public" - }, - { - "body": { - "id": 2208, - "nodeType": "Block", - "src": "1030:146:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2182, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1040:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1040:12:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2184, - "nodeType": "ExpressionStatement", - "src": "1040:12:18" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2196, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "1118:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2200, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2197, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "1130:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2199, - "indexExpression": { - "argumentTypes": null, - "id": 2198, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1137:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1130:9:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1118:22:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2201, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "1118:33:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2202, - "name": "_dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "1154:12:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2204, - "indexExpression": { - "argumentTypes": null, - "id": 2203, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1167:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1154:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1118:51:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2206, - "nodeType": "ExpressionStatement", - "src": "1118:51:18" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1082:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2190, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "1086:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1086:13:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1082:17:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2207, - "initializationExpression": { - "assignments": [ - 2186 - ], - "declarations": [ - { - "constant": false, - "id": 2186, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2207, - "src": "1067:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1067:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2188, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1079:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1067:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1101:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2193, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1101:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2195, - "nodeType": "ExpressionStatement", - "src": "1101:3:18" - }, - "nodeType": "ForStatement", - "src": "1062:107:18" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 2209, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2180, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2176, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 2209, - "src": "955:23:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "955:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2175, - "length": null, - "nodeType": "ArrayTypeName", - "src": "955:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2179, - "name": "_dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2209, - "src": "980:29:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "980:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2178, - "length": null, - "nodeType": "ArrayTypeName", - "src": "980:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "954:56:18" - }, - "returnParameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [], - "src": "1030:0:18" - }, - "scope": 2393, - "src": "940:236:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2225, - "nodeType": "Block", - "src": "1503:59:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2218, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "1513:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2220, - "indexExpression": { - "argumentTypes": null, - "id": 2219, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "1525:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1513:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "1513:29:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2222, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2213, - "src": "1545:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1513:42:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "1513:42:18" - } - ] - }, - "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 2226, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2216, - "modifierName": { - "argumentTypes": null, - "id": 2215, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1488:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1488:10:18" - } - ], - "name": "changeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2214, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2211, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2226, - "src": "1430:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1430:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2213, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2226, - "src": "1445:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1445:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1429:35:18" - }, - "returnParameters": { - "id": 2217, - "nodeType": "ParameterList", - "parameters": [], - "src": "1503:0:18" - }, - "scope": 2393, - "src": "1404:158:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2322, - "nodeType": "Block", - "src": "2015:925:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2242, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2149:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2149:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2238, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2131:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2123:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2123:16:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2236, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2110:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:30:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2110:38:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:50:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2162:39:18", - "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": 2235, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2102:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2102:100:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2247, - "nodeType": "ExpressionStatement", - "src": "2102:100:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2249, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2220:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2234:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2226:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2220:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2238:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - }, - "value": "Invalid to address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - } - ], - "id": 2248, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2212:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:56:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2256, - "nodeType": "ExpressionStatement", - "src": "2212:56:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2286:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2295:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2286:10:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 2261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2298:25:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - }, - "value": "Invalid amount provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - } - ], - "id": 2257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2278:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2278:46:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "2278:46:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2266, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2419:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2267, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2426:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2265, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "2406:12:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 2268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2406:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:30:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - }, - "value": "Daily limit has been reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - } - ], - "id": 2264, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2398:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2398:68:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2271, - "nodeType": "ExpressionStatement", - "src": "2398:68:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2272, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "2476:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2274, - "indexExpression": { - "argumentTypes": null, - "id": 2273, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2488:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2476:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "2476:29:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 2276, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2509:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2476:39:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2278, - "nodeType": "ExpressionStatement", - "src": "2476:39:18" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2279, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2529:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2546:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2538:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2538:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2529:19:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2320, - "nodeType": "Block", - "src": "2696:238:18", - "statements": [ - { - "assignments": [ - 2299 - ], - "declarations": [ - { - "constant": false, - "id": 2299, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2320, - "src": "2710:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2298, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2710:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2306, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2754:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 2303, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2783:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2304, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2787:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2300, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2730:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2730:23:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2730:64:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2710:84:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2310, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2850:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2857:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2312, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "2860:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2313, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2866:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2866:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2866:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2308, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2816:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2816:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2816:70:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2888:34:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - }, - "value": "Could not execute token transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - } - ], - "id": 2307, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2808:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2808:115:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2319, - "nodeType": "ExpressionStatement", - "src": "2808:115:18" - } - ] - }, - "id": 2321, - "nodeType": "IfStatement", - "src": "2525:409:18", - "trueBody": { - "id": 2297, - "nodeType": "Block", - "src": "2550:140:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2287, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2606:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2288, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2610:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 2289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2618:2:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2622:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2622:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2622:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2285, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2572:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2572:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2572:70:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2644:34:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - }, - "value": "Could not execute ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - } - ], - "id": 2284, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2564:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2564:115:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2296, - "nodeType": "ExpressionStatement", - "src": "2564:115:18" - } - ] - } - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2323, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2228, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1953:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1953:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2230, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1968:10:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1968:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2232, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1980:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1980:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1952:43:18" - }, - "returnParameters": { - "id": 2234, - "nodeType": "ParameterList", - "parameters": [], - "src": "2015:0:18" - }, - "scope": 2393, - "src": "1926:1014:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2378, - "nodeType": "Block", - "src": "3043:389:18", - "statements": [ - { - "assignments": [ - 2333 - ], - "declarations": [ - { - "constant": false, - "id": 2333, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2378, - "src": "3053:29:18", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - }, - "typeName": { - "contractScope": null, - "id": 2332, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2173, - "src": "3053:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2337, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2334, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "3085:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2336, - "indexExpression": { - "argumentTypes": null, - "id": 2335, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "3097:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3085:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3053:50:18" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2338, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3117:5:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3117:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2340, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3127:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2341, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "3127:18:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3117:28:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2357, - "nodeType": "IfStatement", - "src": "3113:126:18", - "trueBody": { - "id": 2356, - "nodeType": "Block", - "src": "3147:92:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2343, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3161:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "3161:18:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2346, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3182:5:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3182:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3161:28:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2349, - "nodeType": "ExpressionStatement", - "src": "3161:28:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2350, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3203:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3203:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3227:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3203:25:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "3203:25:18" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3252:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3252:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2360, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3276:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3252:30:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2362, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3286:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2363, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "3286:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3252:55:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2365, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3324:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3324:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2367, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3348:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3324:30:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2369, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3357:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2370, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3357:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3324:54:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3252:126:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2375, - "nodeType": "IfStatement", - "src": "3248:155:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3399:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2331, - "id": 2374, - "nodeType": "Return", - "src": "3392:11:18" - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2376, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3420:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2331, - "id": 2377, - "nodeType": "Return", - "src": "3413:12:18" - } - ] - }, - "documentation": null, - "id": 2379, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isUnderLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2325, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "2968:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2968:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2327, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "2983:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2983:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2967:31:18" - }, - "returnParameters": { - "id": 2331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2330, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3033:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2329, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3033:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3032:6:18" - }, - "scope": 2393, - "src": "2946:486:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2391, - "nodeType": "Block", - "src": "3596:44:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2384, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "3613:3:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2385, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "3620:3:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3626:6:18", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "1" - }, - "src": "3620:12:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2388, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3619:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3613:20:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2383, - "id": 2390, - "nodeType": "Return", - "src": "3606:27:18" - } - ] - }, - "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2392, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "today", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2380, - "nodeType": "ParameterList", - "parameters": [], - "src": "3538:2:18" - }, - "returnParameters": { - "id": 2383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2392, - "src": "3586:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2381, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3586:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3585:6:18" - }, - "scope": 2393, - "src": "3524:116:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2394, - "src": "318:3324:18" - } - ], - "src": "0:3643:18" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "exportedSymbols": { - "DailyLimitModule": [ - 2393 - ] - }, - "id": 2394, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2150, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:18" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2151, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1021, - "src": "24:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2152, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1331, - "src": "53:35:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2153, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1797, - "src": "89:34:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2154, - "nodeType": "ImportDirective", - "scope": 2394, - "sourceUnit": 1804, - "src": "124:28:18", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2155, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "347:6:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2156, - "nodeType": "InheritanceSpecifier", - "src": "347:6:18" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2393, - "linearizedBaseContracts": [ - 2393, - 1020, - 1839, - 1881 - ], - "name": "DailyLimitModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2159, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "361:50:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2157, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "361:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "391:20:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", - "typeString": "literal_string \"Daily Limit Module\"" - }, - "value": "Daily Limit Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2162, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "417:40:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2160, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "417:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "450:7:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2166, - "name": "dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2393, - "src": "535:50:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "typeName": { - "id": 2165, - "keyType": { - "id": 2163, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "544:7:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "535:31:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" - }, - "valueType": { - "contractScope": null, - "id": 2164, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2173, - "src": "555:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DailyLimitModule.DailyLimit", - "id": 2173, - "members": [ - { - "constant": false, - "id": 2168, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "620:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2167, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "620:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2170, - "name": "spentToday", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "648:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "648:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2172, - "name": "lastDay", - "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "676:15:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "676:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "DailyLimit", - "nodeType": "StructDefinition", - "scope": 2393, - "src": "592:106:18", - "visibility": "public" - }, - { - "body": { - "id": 2208, - "nodeType": "Block", - "src": "1030:146:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2182, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1040:10:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1040:12:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2184, - "nodeType": "ExpressionStatement", - "src": "1040:12:18" - }, - { - "body": { - "expression": { - "argumentTypes": null, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2196, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "1118:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2200, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2197, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "1130:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2199, - "indexExpression": { - "argumentTypes": null, - "id": 2198, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1137:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1130:9:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1118:22:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2201, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "1118:33:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2202, - "name": "_dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2179, - "src": "1154:12:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2204, - "indexExpression": { - "argumentTypes": null, - "id": 2203, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1167:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1154:15:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1118:51:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2206, - "nodeType": "ExpressionStatement", - "src": "1118:51:18" - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2189, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1082:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2190, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "1086:6:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1086:13:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1082:17:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2207, - "initializationExpression": { - "assignments": [ - 2186 - ], - "declarations": [ - { - "constant": false, - "id": 2186, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2207, - "src": "1067:9:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1067:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2188, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1079:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1067:13:18" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1101:3:18", - "subExpression": { - "argumentTypes": null, - "id": 2193, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2186, - "src": "1101:1:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2195, - "nodeType": "ExpressionStatement", - "src": "1101:3:18" - }, - "nodeType": "ForStatement", - "src": "1062:107:18" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 2209, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2180, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2176, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 2209, - "src": "955:23:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2174, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "955:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2175, - "length": null, - "nodeType": "ArrayTypeName", - "src": "955:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2179, - "name": "_dailyLimits", - "nodeType": "VariableDeclaration", - "scope": 2209, - "src": "980:29:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "980:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2178, - "length": null, - "nodeType": "ArrayTypeName", - "src": "980:9:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "954:56:18" - }, - "returnParameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [], - "src": "1030:0:18" - }, - "scope": 2393, - "src": "940:236:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2225, - "nodeType": "Block", - "src": "1503:59:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2218, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "1513:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2220, - "indexExpression": { - "argumentTypes": null, - "id": 2219, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "1525:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1513:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "1513:29:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2222, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2213, - "src": "1545:10:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1513:42:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "1513:42:18" - } - ] - }, - "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 2226, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2216, - "modifierName": { - "argumentTypes": null, - "id": 2215, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1488:10:18", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1488:10:18" - } - ], - "name": "changeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2214, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2211, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2226, - "src": "1430:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1430:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2213, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2226, - "src": "1445:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1445:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1429:35:18" - }, - "returnParameters": { - "id": 2217, - "nodeType": "ParameterList", - "parameters": [], - "src": "1503:0:18" - }, - "scope": 2393, - "src": "1404:158:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2322, - "nodeType": "Block", - "src": "2015:925:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2242, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2149:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2149:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2238, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2131:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2123:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2123:16:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2236, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2110:12:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:30:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2110:38:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2110:50:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2162:39:18", - "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": 2235, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2102:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2102:100:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2247, - "nodeType": "ExpressionStatement", - "src": "2102:100:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2249, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2220:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2234:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2226:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2220:16:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2238:29:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - }, - "value": "Invalid to address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5adba0692e08f8080ea3ec2bf95727d181df9c72d0fc6db8f77e3703d9523f1", - "typeString": "literal_string \"Invalid to address provided\"" - } - ], - "id": 2248, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2212:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:56:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2256, - "nodeType": "ExpressionStatement", - "src": "2212:56:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2286:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2295:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2286:10:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 2261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2298:25:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - }, - "value": "Invalid amount provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_991bec80688b0edba4751e32429f6879002de57199ff2c6b5bf0742d348ba58f", - "typeString": "literal_string \"Invalid amount provided\"" - } - ], - "id": 2257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2278:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2278:46:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "2278:46:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2266, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2419:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2267, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2426:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2265, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "2406:12:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 2268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2406:27:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:30:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - }, - "value": "Daily limit has been reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c8c9a9731e3c1970f356c6998c7e6418ab5b55402b68846f03a8bbe49c05905", - "typeString": "literal_string \"Daily limit has been reached\"" - } - ], - "id": 2264, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2398:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2398:68:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2271, - "nodeType": "ExpressionStatement", - "src": "2398:68:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2272, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "2476:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2274, - "indexExpression": { - "argumentTypes": null, - "id": 2273, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2488:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2476:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 2275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "2476:29:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 2276, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2509:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2476:39:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2278, - "nodeType": "ExpressionStatement", - "src": "2476:39:18" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2279, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2529:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2546:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2538:7:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2282, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2538:10:18", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2529:19:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2320, - "nodeType": "Block", - "src": "2696:238:18", - "statements": [ - { - "assignments": [ - 2299 - ], - "declarations": [ - { - "constant": false, - "id": 2299, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2320, - "src": "2710:17:18", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2298, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2710:5:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2306, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2754:27:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 2303, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2783:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2304, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2787:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2300, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2730:3:18", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2730:23:18", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2730:64:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2710:84:18" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2310, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2850:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2857:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2312, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "2860:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2313, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2866:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2866:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2866:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2308, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2816:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2816:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2816:70:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2888:34:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - }, - "value": "Could not execute token transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_00c0b742664159361be6aebbe2af44c4ae7eb95e13260265d1e1cf75d2593709", - "typeString": "literal_string \"Could not execute token transfer\"" - } - ], - "id": 2307, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2808:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2808:115:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2319, - "nodeType": "ExpressionStatement", - "src": "2808:115:18" - } - ] - }, - "id": 2321, - "nodeType": "IfStatement", - "src": "2525:409:18", - "trueBody": { - "id": 2297, - "nodeType": "Block", - "src": "2550:140:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2287, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2606:2:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2288, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2232, - "src": "2610:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 2289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2618:2:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2622:4:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2622:14:18", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2622:19:18", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2285, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2572:7:18", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2572:33:18", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2572:70:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2644:34:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - }, - "value": "Could not execute ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2fae53cac084168982e43888b6e5eff084959ab65d511777b56b4cbb265d2586", - "typeString": "literal_string \"Could not execute ether transfer\"" - } - ], - "id": 2284, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2564:7:18", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2564:115:18", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2296, - "nodeType": "ExpressionStatement", - "src": "2564:115:18" - } - ] - } - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", - "id": 2323, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeDailyLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2228, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1953:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1953:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2230, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1968:10:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1968:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2232, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2323, - "src": "1980:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1980:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1952:43:18" - }, - "returnParameters": { - "id": 2234, - "nodeType": "ParameterList", - "parameters": [], - "src": "2015:0:18" - }, - "scope": 2393, - "src": "1926:1014:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2378, - "nodeType": "Block", - "src": "3043:389:18", - "statements": [ - { - "assignments": [ - 2333 - ], - "declarations": [ - { - "constant": false, - "id": 2333, - "name": "dailyLimit", - "nodeType": "VariableDeclaration", - "scope": 2378, - "src": "3053:29:18", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - }, - "typeName": { - "contractScope": null, - "id": 2332, - "name": "DailyLimit", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2173, - "src": "3053:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2337, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2334, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2166, - "src": "3085:11:18", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$2173_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 2336, - "indexExpression": { - "argumentTypes": null, - "id": 2335, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "3097:5:18", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3085:18:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3053:50:18" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2338, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3117:5:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3117:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2340, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3127:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2341, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "3127:18:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3117:28:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2357, - "nodeType": "IfStatement", - "src": "3113:126:18", - "trueBody": { - "id": 2356, - "nodeType": "Block", - "src": "3147:92:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2343, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3161:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "3161:18:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2346, - "name": "today", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3182:5:18", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3182:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3161:28:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2349, - "nodeType": "ExpressionStatement", - "src": "3161:28:18" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2350, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3203:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3203:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3227:1:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3203:25:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "3203:25:18" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3252:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3252:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2360, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3276:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3252:30:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2362, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3286:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2363, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2168, - "src": "3286:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3252:55:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2365, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3324:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3324:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2367, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "3348:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3324:30:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2369, - "name": "dailyLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3357:10:18", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$2173_storage_ptr", - "typeString": "struct DailyLimitModule.DailyLimit storage pointer" - } - }, - "id": 2370, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 2170, - "src": "3357:21:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3324:54:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3252:126:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2375, - "nodeType": "IfStatement", - "src": "3248:155:18", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3399:4:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2331, - "id": 2374, - "nodeType": "Return", - "src": "3392:11:18" - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2376, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3420:5:18", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2331, - "id": 2377, - "nodeType": "Return", - "src": "3413:12:18" - } - ] - }, - "documentation": null, - "id": 2379, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isUnderLimit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2325, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "2968:13:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2968:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2327, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "2983:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2983:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2967:31:18" - }, - "returnParameters": { - "id": 2331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2330, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2379, - "src": "3033:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2329, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3033:4:18", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3032:6:18" - }, - "scope": 2393, - "src": "2946:486:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2391, - "nodeType": "Block", - "src": "3596:44:18", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2384, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "3613:3:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2385, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4368, - "src": "3620:3:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3626:6:18", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "value": "1" - }, - "src": "3620:12:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2388, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3619:14:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3613:20:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2383, - "id": 2390, - "nodeType": "Return", - "src": "3606:27:18" - } - ] - }, - "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2392, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "today", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2380, - "nodeType": "ParameterList", - "parameters": [], - "src": "3538:2:18" - }, - "returnParameters": { - "id": 2383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2392, - "src": "3586:4:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2381, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3586:4:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3585:6:18" - }, - "scope": 2393, - "src": "3524:116:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2394, - "src": "318:3324:18" - } - ], - "src": "0:3643:18" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.636Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json deleted file mode 100644 index d04ea63f..00000000 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ /dev/null @@ -1,638 +0,0 @@ -{ - "contractName": "DelegateConstructorProxy", - "abi": [ - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - }, - { - "name": "initializer", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040516102463803806102468339810180604052604081101561003357600080fd5b8101908080519060200190929190805164010000000081111561005557600080fd5b8281019050602081018481111561006b57600080fd5b815185600182028301116401000000008211171561008857600080fd5b505092919050505081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610117576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806102226024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a45773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e60008214156101a0573d81fd5b5050505b5050606e806101b46000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820fc8f0eaf85f81f88a3b472b935d06e74dd227676b2f73b615dce5020f4893fcd0029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "deployedBytecode": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820fc8f0eaf85f81f88a3b472b935d06e74dd227676b2f73b615dce5020f4893fcd0029", - "sourceMap": "355:889:22:-;;;610:632;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:632:22;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;610:632:22;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;610:632:22;;;;;;675:11;715:1:24;692:25;;:11;:25;;;;684:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:11;768:10;;:24;;;;;;;;;;;;;;;;;;622:177;742:1:22;721:11;:18;:22;717:519;;;886:42;882:1;876:8;872:57;1050:1;1047;1033:11;1027:18;1020:4;1007:11;1003:22;991:10;983:5;978:3;974:15;961:91;1086:4;1080:11;1131:14;1128:1;1123:3;1108:38;1178:1;1169:7;1166:14;1163:2;;;1195:14;1190:3;1183:27;1163:2;836:390;;;;610:632;;355:889;;;;;;", - "deployedSourceMap": "355:889:22:-;;;1078:42:24;1074:1;1068:8;1064:57;1153:14;1150:1;1147;1134:34;1248:1;1245;1229:14;1226:1;1214:10;1209:3;1196:54;1284:16;1281:1;1278;1263:38;1329:1;1320:7;1317:14;1314:2;;;1344:16;1341:1;1334:27;1314:2;1386:16;1383:1;1376:27", - "source": "pragma solidity ^0.5.0;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes memory initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "exportedSymbols": { - "DelegateConstructorProxy": [ - 3035 - ] - }, - "id": 3036, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3013, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 3014, - "nodeType": "ImportDirective", - "scope": 3036, - "sourceUnit": 3122, - "src": "24:21:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3015, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "392:5:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "id": 3016, - "nodeType": "InheritanceSpecifier", - "src": "392:5:22" - } - ], - "contractDependencies": [ - 3121 - ], - "contractKind": "contract", - "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 3035, - "linearizedBaseContracts": [ - 3035, - 3121 - ], - "name": "DelegateConstructorProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3033, - "nodeType": "Block", - "src": "707:535:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3026, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "721:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "721:18:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "742:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "721:22:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3032, - "nodeType": "IfStatement", - "src": "717:519:22", - "trueBody": { - "id": 3031, - "nodeType": "Block", - "src": "745:491:22", - "statements": [ - { - "externalReferences": [ - { - "initializer": { - "declaration": 3020, - "isOffset": false, - "isSlot": false, - "src": "1033:11:22", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 3020, - "isOffset": false, - "isSlot": false, - "src": "1007:11:22", - "valueSize": 1 - } - } - ], - "id": 3030, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "827:409:22" - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 3034, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3023, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "675:11:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3024, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "669:5:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:18:22" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3018, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "622:19:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "622:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3020, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "643:24:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3019, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "643:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "621:47:22" - }, - "returnParameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [], - "src": "707:0:22" - }, - "scope": 3035, - "src": "610:632:22", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3036, - "src": "355:889:22" - } - ], - "src": "0:1245:22" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "exportedSymbols": { - "DelegateConstructorProxy": [ - 3035 - ] - }, - "id": 3036, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3013, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 3014, - "nodeType": "ImportDirective", - "scope": 3036, - "sourceUnit": 3122, - "src": "24:21:22", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3015, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "392:5:22", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "id": 3016, - "nodeType": "InheritanceSpecifier", - "src": "392:5:22" - } - ], - "contractDependencies": [ - 3121 - ], - "contractKind": "contract", - "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 3035, - "linearizedBaseContracts": [ - 3035, - 3121 - ], - "name": "DelegateConstructorProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3033, - "nodeType": "Block", - "src": "707:535:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3026, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "721:11:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "721:18:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "742:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "721:22:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3032, - "nodeType": "IfStatement", - "src": "717:519:22", - "trueBody": { - "id": 3031, - "nodeType": "Block", - "src": "745:491:22", - "statements": [ - { - "externalReferences": [ - { - "initializer": { - "declaration": 3020, - "isOffset": false, - "isSlot": false, - "src": "1033:11:22", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 3020, - "isOffset": false, - "isSlot": false, - "src": "1007:11:22", - "valueSize": 1 - } - } - ], - "id": 3030, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}", - "src": "827:409:22" - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 3034, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3023, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "675:11:22", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3024, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "669:5:22", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:18:22" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3018, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "622:19:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "622:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3020, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3034, - "src": "643:24:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3019, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "643:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "621:47:22" - }, - "returnParameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [], - "src": "707:0:22" - }, - "scope": 3035, - "src": "610:632:22", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3036, - "src": "355:889:22" - } - ], - "src": "0:1245:22" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.645Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json deleted file mode 100644 index c0e2ee9f..00000000 --- a/safe-contracts/build/contracts/Enum.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "contractName": "Enum", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820c1930931e85c9dde8b501628eee3c514e015dd5669b3fe14a92e44ba2bb010910029", - "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820c1930931e85c9dde8b501628eee3c514e015dd5669b3fe14a92e44ba2bb010910029", - "sourceMap": "115:95:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:7;;;;;;;", - "deployedSourceMap": "115:95:7:-;;;;;", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - \ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "exportedSymbols": { - "Enum": [ - 1803 - ] - }, - "id": 1804, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1798, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1803, - "linearizedBaseContracts": [ - 1803 - ], - "name": "Enum", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Enum.Operation", - "id": 1802, - "members": [ - { - "id": 1799, - "name": "Call", - "nodeType": "EnumValue", - "src": "160:4:7" - }, - { - "id": 1800, - "name": "DelegateCall", - "nodeType": "EnumValue", - "src": "174:12:7" - }, - { - "id": 1801, - "name": "Create", - "nodeType": "EnumValue", - "src": "196:6:7" - } - ], - "name": "Operation", - "nodeType": "EnumDefinition", - "src": "135:73:7" - } - ], - "scope": 1804, - "src": "115:95:7" - } - ], - "src": "0:211:7" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "exportedSymbols": { - "Enum": [ - 1803 - ] - }, - "id": 1804, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1798, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1803, - "linearizedBaseContracts": [ - 1803 - ], - "name": "Enum", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Enum.Operation", - "id": 1802, - "members": [ - { - "id": 1799, - "name": "Call", - "nodeType": "EnumValue", - "src": "160:4:7" - }, - { - "id": 1800, - "name": "DelegateCall", - "nodeType": "EnumValue", - "src": "174:12:7" - }, - { - "id": 1801, - "name": "Create", - "nodeType": "EnumValue", - "src": "196:6:7" - } - ], - "name": "Operation", - "nodeType": "EnumDefinition", - "src": "135:73:7" - } - ], - "scope": 1804, - "src": "115:95:7" - } - ], - "src": "0:211:7" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.632Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/EtherPaymentFallback.json b/safe-contracts/build/contracts/EtherPaymentFallback.json deleted file mode 100644 index 27a6c6c9..00000000 --- a/safe-contracts/build/contracts/EtherPaymentFallback.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "contractName": "EtherPaymentFallback", - "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f3fe608060405200fea165627a7a723058207bae2a570814c751f55fdecb7fd4413b775bd78e3998b7dad48953a07efc0fd00029", - "deployedBytecode": "0x608060405200fea165627a7a723058207bae2a570814c751f55fdecb7fd4413b775bd78e3998b7dad48953a07efc0fd00029", - "sourceMap": "167:155:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:8;;;;;;;", - "deployedSourceMap": "167:155:8:-;;;", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n/// @author Richard Meissner - \ncontract EtherPaymentFallback {\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "exportedSymbols": { - "EtherPaymentFallback": [ - 1810 - ] - }, - "id": 1811, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1805, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1810, - "linearizedBaseContracts": [ - 1810 - ], - "name": "EtherPaymentFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1808, - "nodeType": "Block", - "src": "312:8:8", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1809, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1806, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:2:8" - }, - "returnParameters": { - "id": 1807, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:8" - }, - "scope": 1810, - "src": "263:57:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1811, - "src": "167:155:8" - } - ], - "src": "0:323:8" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "exportedSymbols": { - "EtherPaymentFallback": [ - 1810 - ] - }, - "id": 1811, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1805, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1810, - "linearizedBaseContracts": [ - 1810 - ], - "name": "EtherPaymentFallback", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1808, - "nodeType": "Block", - "src": "312:8:8", - "statements": [] - }, - "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 1809, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1806, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:2:8" - }, - "returnParameters": { - "id": 1807, - "nodeType": "ParameterList", - "parameters": [], - "src": "312:0:8" - }, - "scope": 1810, - "src": "263:57:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1811, - "src": "167:155:8" - } - ], - "src": "0:323:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.632Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Executor.json b/safe-contracts/build/contracts/Executor.json deleted file mode 100644 index d60d8a21..00000000 --- a/safe-contracts/build/contracts/Executor.json +++ /dev/null @@ -1,3129 +0,0 @@ -{ - "contractName": "Executor", - "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - } - ], - "bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f3fe608060405200fea165627a7a72305820a15c97931d5b3cb5adfe8527174f5aa8bd84c15ae2f44b0ca69c579616b066fa0029", - "deployedBytecode": "0x608060405200fea165627a7a72305820a15c97931d5b3cb5adfe8527174f5aa8bd84c15ae2f44b0ca69c579616b066fa0029", - "sourceMap": "214:1577:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;214:1577:3;;;;;;;", - "deployedSourceMap": "214:1577:3:-;;;", - "source": "pragma solidity ^0.5.0;\nimport \"../common/Enum.sol\";\nimport \"../common/EtherPaymentFallback.sol\";\n\n\n/// @title Executor - A contract that can execute transactions\n/// @author Richard Meissner - \ncontract Executor is EtherPaymentFallback {\n\n event ContractCreation(address newContract);\n\n function execute(address to, uint256 value, bytes memory data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != address(0);\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes memory data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes memory data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes memory data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "exportedSymbols": { - "Executor": [ - 975 - ] - }, - "id": 976, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 865, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 866, - "nodeType": "ImportDirective", - "scope": 976, - "sourceUnit": 1804, - "src": "24:28:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "file": "../common/EtherPaymentFallback.sol", - "id": 867, - "nodeType": "ImportDirective", - "scope": 976, - "sourceUnit": 1811, - "src": "53:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 868, - "name": "EtherPaymentFallback", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1810, - "src": "235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1810", - "typeString": "contract EtherPaymentFallback" - } - }, - "id": 869, - "nodeType": "InheritanceSpecifier", - "src": "235:20:3" - } - ], - "contractDependencies": [ - 1810 - ], - "contractKind": "contract", - "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 975, - "linearizedBaseContracts": [ - 975, - 1810 - ], - "name": "Executor", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 873, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 872, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 871, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 873, - "src": "286:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:21:3" - }, - "src": "263:44:3" - }, - { - "body": { - "id": 936, - "nodeType": "Block", - "src": "469:408:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 888, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "483:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 889, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "496:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "496:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "496:19:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "src": "483:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 902, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "593:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 903, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "606:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "606:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "606:27:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "src": "593:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 933, - "nodeType": "Block", - "src": "708:163:3", - "statements": [ - { - "assignments": [ - 916 - ], - "declarations": [ - { - "constant": false, - "id": 916, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 933, - "src": "722:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 915, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "722:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 920, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 918, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "758:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 917, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "744:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "744:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "722:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 921, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "777:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 922, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "787:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "810:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "802:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "802:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "787:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "777:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 928, - "nodeType": "ExpressionStatement", - "src": "777:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "848:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 929, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 873, - "src": "831:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "831:29:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 932, - "nodeType": "EmitStatement", - "src": "826:34:3" - } - ] - }, - "id": 934, - "nodeType": "IfStatement", - "src": "589:282:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 907, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "647:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 909, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "677:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "681:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "687:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 908, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "657:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "657:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "647:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 914, - "nodeType": "ExpressionStatement", - "src": "647:46:3" - } - }, - "id": 935, - "nodeType": "IfStatement", - "src": "479:392:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 893, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "529:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 895, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "551:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 896, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 877, - "src": "555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 897, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 898, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 894, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 952, - "src": "539:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" - } - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "539:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "529:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 901, - "nodeType": "ExpressionStatement", - "src": "529:45:3" - } - } - ] - }, - "documentation": null, - "id": 937, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 875, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "330:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 874, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 877, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "342:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 876, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "342:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 879, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "357:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 881, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "376:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 880, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "376:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 883, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "402:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "402:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:87:3" - }, - "returnParameters": { - "id": 887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 886, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "451:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 885, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "451:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "450:14:3" - }, - "scope": 975, - "src": "313:564:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 951, - "nodeType": "Block", - "src": "1017:182:3", - "statements": [ - { - "externalReferences": [ - { - "success": { - "declaration": 948, - "isOffset": false, - "isSlot": false, - "src": "1114:7:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 943, - "isOffset": false, - "isSlot": false, - "src": "1171:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 943, - "isOffset": false, - "isSlot": false, - "src": "1152:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 945, - "isOffset": false, - "isSlot": false, - "src": "1130:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 939, - "isOffset": false, - "isSlot": false, - "src": "1137:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 941, - "isOffset": false, - "isSlot": false, - "src": "1141:5:3", - "valueSize": 1 - } - } - ], - "id": 950, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1091:108:3" - } - ] - }, - "documentation": null, - "id": 952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 939, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "904:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 938, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "904:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 941, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "916:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 943, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "931:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "931:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 945, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "950:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "950:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:61:3" - }, - "returnParameters": { - "id": 949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 948, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "999:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 947, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "999:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "998:14:3" - }, - "scope": 975, - "src": "883:316:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 964, - "nodeType": "Block", - "src": "1332:183:3", - "statements": [ - { - "externalReferences": [ - { - "success": { - "declaration": 961, - "isOffset": false, - "isSlot": false, - "src": "1429:7:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 956, - "isOffset": false, - "isSlot": false, - "src": "1487:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 956, - "isOffset": false, - "isSlot": false, - "src": "1468:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 958, - "isOffset": false, - "isSlot": false, - "src": "1453:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 954, - "isOffset": false, - "isSlot": false, - "src": "1460:2:3", - "valueSize": 1 - } - } - ], - "id": 963, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1406:109:3" - } - ] - }, - "documentation": null, - "id": 965, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 959, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1234:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1234:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1246:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 955, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1246:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 958, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1265:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 957, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1233:46:3" - }, - "returnParameters": { - "id": 962, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 961, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1314:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 960, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1314:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1313:14:3" - }, - "scope": 975, - "src": "1205:310:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 973, - "nodeType": "Block", - "src": "1622:167:3", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 970, - "isOffset": false, - "isSlot": false, - "src": "1719:11:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 967, - "isOffset": false, - "isSlot": false, - "src": "1767:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 967, - "isOffset": false, - "isSlot": false, - "src": "1748:4:3", - "valueSize": 1 - } - } - ], - "id": 972, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1696:93:3" - } - ] - }, - "documentation": null, - "id": 974, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 967, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 974, - "src": "1544:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 966, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1544:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1543:19:3" - }, - "returnParameters": { - "id": 971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 970, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 974, - "src": "1597:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 969, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1597:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1596:21:3" - }, - "scope": 975, - "src": "1521:268:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 976, - "src": "214:1577:3" - } - ], - "src": "0:1792:3" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "exportedSymbols": { - "Executor": [ - 975 - ] - }, - "id": 976, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 865, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 866, - "nodeType": "ImportDirective", - "scope": 976, - "sourceUnit": 1804, - "src": "24:28:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol", - "file": "../common/EtherPaymentFallback.sol", - "id": 867, - "nodeType": "ImportDirective", - "scope": 976, - "sourceUnit": 1811, - "src": "53:44:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 868, - "name": "EtherPaymentFallback", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1810, - "src": "235:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EtherPaymentFallback_$1810", - "typeString": "contract EtherPaymentFallback" - } - }, - "id": 869, - "nodeType": "InheritanceSpecifier", - "src": "235:20:3" - } - ], - "contractDependencies": [ - 1810 - ], - "contractKind": "contract", - "documentation": "@title Executor - A contract that can execute transactions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 975, - "linearizedBaseContracts": [ - 975, - 1810 - ], - "name": "Executor", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 873, - "name": "ContractCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 872, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 871, - "indexed": false, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 873, - "src": "286:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:21:3" - }, - "src": "263:44:3" - }, - { - "body": { - "id": 936, - "nodeType": "Block", - "src": "469:408:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 888, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "483:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 889, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "496:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "496:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "496:19:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "src": "483:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 902, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "593:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 903, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "606:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "606:14:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "DelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "606:27:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "src": "593:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 933, - "nodeType": "Block", - "src": "708:163:3", - "statements": [ - { - "assignments": [ - 916 - ], - "declarations": [ - { - "constant": false, - "id": 916, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 933, - "src": "722:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 915, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "722:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 920, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 918, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "758:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 917, - "name": "executeCreate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "744:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "744:19:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "722:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 921, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "777:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 922, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "787:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "810:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "802:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "802:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "787:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "777:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 928, - "nodeType": "ExpressionStatement", - "src": "777:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "newContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "848:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 929, - "name": "ContractCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 873, - "src": "831:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "831:29:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 932, - "nodeType": "EmitStatement", - "src": "826:34:3" - } - ] - }, - "id": 934, - "nodeType": "IfStatement", - "src": "589:282:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 907, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "647:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 909, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "677:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "681:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "687:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 908, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "657:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "657:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "647:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 914, - "nodeType": "ExpressionStatement", - "src": "647:46:3" - } - }, - "id": 935, - "nodeType": "IfStatement", - "src": "479:392:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 893, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "529:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 895, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "551:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 896, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 877, - "src": "555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 897, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "562:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 898, - "name": "txGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "568:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 894, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 952, - "src": "539:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" - } - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "539:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "529:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 901, - "nodeType": "ExpressionStatement", - "src": "529:45:3" - } - } - ] - }, - "documentation": null, - "id": 937, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 875, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "330:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 874, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 877, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "342:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 876, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "342:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 879, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "357:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 878, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 881, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "376:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 880, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "376:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 883, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "402:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "402:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:87:3" - }, - "returnParameters": { - "id": 887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 886, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 937, - "src": "451:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 885, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "451:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "450:14:3" - }, - "scope": 975, - "src": "313:564:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 951, - "nodeType": "Block", - "src": "1017:182:3", - "statements": [ - { - "externalReferences": [ - { - "success": { - "declaration": 948, - "isOffset": false, - "isSlot": false, - "src": "1114:7:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 943, - "isOffset": false, - "isSlot": false, - "src": "1171:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 943, - "isOffset": false, - "isSlot": false, - "src": "1152:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 945, - "isOffset": false, - "isSlot": false, - "src": "1130:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 939, - "isOffset": false, - "isSlot": false, - "src": "1137:2:3", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 941, - "isOffset": false, - "isSlot": false, - "src": "1141:5:3", - "valueSize": 1 - } - } - ], - "id": 950, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1091:108:3" - } - ] - }, - "documentation": null, - "id": 952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 939, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "904:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 938, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "904:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 941, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "916:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 943, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "931:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 942, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "931:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 945, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "950:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "950:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:61:3" - }, - "returnParameters": { - "id": 949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 948, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "999:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 947, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "999:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "998:14:3" - }, - "scope": 975, - "src": "883:316:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 964, - "nodeType": "Block", - "src": "1332:183:3", - "statements": [ - { - "externalReferences": [ - { - "success": { - "declaration": 961, - "isOffset": false, - "isSlot": false, - "src": "1429:7:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 956, - "isOffset": false, - "isSlot": false, - "src": "1487:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 956, - "isOffset": false, - "isSlot": false, - "src": "1468:4:3", - "valueSize": 1 - } - }, - { - "txGas": { - "declaration": 958, - "isOffset": false, - "isSlot": false, - "src": "1453:5:3", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 954, - "isOffset": false, - "isSlot": false, - "src": "1460:2:3", - "valueSize": 1 - } - } - ], - "id": 963, - "nodeType": "InlineAssembly", - "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1406:109:3" - } - ] - }, - "documentation": null, - "id": 965, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 959, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1234:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1234:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1246:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 955, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1246:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 958, - "name": "txGas", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1265:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 957, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1265:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1233:46:3" - }, - "returnParameters": { - "id": 962, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 961, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "1314:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 960, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1314:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1313:14:3" - }, - "scope": 975, - "src": "1205:310:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 973, - "nodeType": "Block", - "src": "1622:167:3", - "statements": [ - { - "externalReferences": [ - { - "newContract": { - "declaration": 970, - "isOffset": false, - "isSlot": false, - "src": "1719:11:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 967, - "isOffset": false, - "isSlot": false, - "src": "1767:4:3", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 967, - "isOffset": false, - "isSlot": false, - "src": "1748:4:3", - "valueSize": 1 - } - } - ], - "id": 972, - "nodeType": "InlineAssembly", - "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "1696:93:3" - } - ] - }, - "documentation": null, - "id": 974, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeCreate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 967, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 974, - "src": "1544:17:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 966, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1544:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1543:19:3" - }, - "returnParameters": { - "id": 971, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 970, - "name": "newContract", - "nodeType": "VariableDeclaration", - "scope": 974, - "src": "1597:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 969, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1597:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1596:21:3" - }, - "scope": 975, - "src": "1521:268:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 976, - "src": "214:1577:3" - } - ], - "src": "0:1792:3" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.623Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json deleted file mode 100644 index 1dad2421..00000000 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ /dev/null @@ -1,22966 +0,0 @@ -{ - "contractName": "GnosisSafe", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "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": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_MSG_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_TX_TYPEHASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "txHash", - "type": "bytes32" - } - ], - "name": "ExecutionFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "payment", - "type": "uint256" - }, - { - "name": "paymentReceiver", - "type": "address" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "baseGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - } - ], - "name": "signMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "baseGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "safeTxGas", - "type": "uint256" - }, - { - "name": "baseGas", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasToken", - "type": "address" - }, - { - "name": "refundReceiver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061591d80620000216000396000f3fe6080604052600436106101e35760003560e01c8063a3f4df7e11610102578063d8d11f7811610095578063e86637db11610064578063e86637db14611139578063f698da251461131a578063f8dc5dd914611345578063ffa1ad74146113c0576101e3565b8063d8d11f7814610e90578063e009cfde1461100c578063e318b52b1461107d578063e75235b81461110e576101e3565b8063c0856ffc116100d1578063c0856ffc14610d2e578063c4ca3a9c14610d59578063ccafc38714610e2a578063d4d9bdcd14610e55576101e3565b8063a3f4df7e14610ab8578063a97ab18a14610b48578063affed0e014610c97578063b2494df314610cc2576101e3565b8063694e80c31161017a57806385a5affe1161014957806385a5affe1461091857806385e332cd1461099e5780638cff6355146109f5578063a0e67e2b14610a4c576101e3565b8063694e80c3146106945780636a761202146106cf5780637d832974146108585780637de7edef146108c7576101e3565b80632f54bf6e116101b65780632f54bf6e14610474578063468721a7146104dd5780635ae6bd37146105f4578063610b592514610643576101e3565b80630a1028c4146101e55780630d582f13146102c15780631db61b541461031c57806320c13b0b14610347575b005b3480156101f157600080fd5b506102ab6004803603602081101561020857600080fd5b810190808035906020019064010000000081111561022557600080fd5b82018360208201111561023757600080fd5b8035906020019184600183028401116401000000008311171561025957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611450565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b5061031a600480360360408110156102e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611587565b005b34801561032857600080fd5b506103316119d1565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b506104206004803603604081101561036a57600080fd5b810190808035906020019064010000000081111561038757600080fd5b82018360208201111561039957600080fd5b803590602001918460018302840111640100000000831117156103bb57600080fd5b9091929391929390803590602001906401000000008111156103dc57600080fd5b8201836020820111156103ee57600080fd5b8035906020019184600183028401116401000000008311171561041057600080fd5b90919293919293905050506119f8565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561048057600080fd5b506104c36004803603602081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8e565b604051808215151515815260200191505060405180910390f35b3480156104e957600080fd5b506105da6004803603608081101561050057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054757600080fd5b82018360208201111561055957600080fd5b8035906020019184600183028401116401000000008311171561057b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190505050611c60565b604051808215151515815260200191505060405180910390f35b34801561060057600080fd5b5061062d6004803603602081101561061757600080fd5b8101908080359060200190929190505050611d97565b6040518082815260200191505060405180910390f35b34801561064f57600080fd5b506106926004803603602081101561066657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611daf565b005b3480156106a057600080fd5b506106cd600480360360208110156106b757600080fd5b81019080803590602001909291905050506121d3565b005b3480156106db57600080fd5b5061083e60048036036101408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561073a57600080fd5b82018360208201111561074c57600080fd5b8035906020019184600183028401116401000000008311171561076e57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184600183028401116401000000008311171561082e57600080fd5b909192939192939050505061234f565b604051808215151515815260200191505060405180910390f35b34801561086457600080fd5b506108b16004803603604081101561087b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612565565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610916600480360360208110156108ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061258a565b005b34801561092457600080fd5b5061099c6004803603602081101561093b57600080fd5b810190808035906020019064010000000081111561095857600080fd5b82018360208201111561096a57600080fd5b8035906020019184600183028401116401000000008311171561098c57600080fd5b90919293919293905050506126d7565b005b3480156109aa57600080fd5b506109b36127c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a0157600080fd5b50610a0a6127c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5857600080fd5b50610a616127ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610aa4578082015181840152602081019050610a89565b505050509050019250505060405180910390f35b348015610ac457600080fd5b50610acd612963565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b0d578082015181840152602081019050610af2565b50505050905090810190601f168015610b3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b5457600080fd5b50610c95600480360360e0811015610b6b57600080fd5b8101908080359060200190640100000000811115610b8857600080fd5b820183602082011115610b9a57600080fd5b80359060200191846020830284011164010000000083111715610bbc57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c0757600080fd5b820183602082011115610c1957600080fd5b80359060200191846001830284011164010000000083111715610c3b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299c565b005b348015610ca357600080fd5b50610cac612b4f565b6040518082815260200191505060405180910390f35b348015610cce57600080fd5b50610cd7612b55565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d1a578082015181840152602081019050610cff565b505050509050019250505060405180910390f35b348015610d3a57600080fd5b50610d43612df4565b6040518082815260200191505060405180910390f35b348015610d6557600080fd5b50610e1460048036036080811015610d7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610dc357600080fd5b820183602082011115610dd557600080fd5b80359060200191846001830284011164010000000083111715610df757600080fd5b9091929391929390803560ff169060200190929190505050612e1b565b6040518082815260200191505060405180910390f35b348015610e3657600080fd5b50610e3f612fc8565b6040518082815260200191505060405180910390f35b348015610e6157600080fd5b50610e8e60048036036020811015610e7857600080fd5b8101908080359060200190929190505050612fef565b005b348015610e9c57600080fd5b50610ff66004803603610140811015610eb457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610efb57600080fd5b820183602082011115610f0d57600080fd5b80359060200191846001830284011164010000000083111715610f2f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061314a565b6040518082815260200191505060405180910390f35b34801561101857600080fd5b5061107b6004803603604081101561102f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613175565b005b34801561108957600080fd5b5061110c600480360360608110156110a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061357b565b005b34801561111a57600080fd5b50611123613c40565b6040518082815260200191505060405180910390f35b34801561114557600080fd5b5061129f600480360361014081101561115d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156111a457600080fd5b8201836020820111156111b657600080fd5b803590602001918460018302840111640100000000831117156111d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c4a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112df5780820151818401526020810190506112c4565b50505050905090810190601f16801561130c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561132657600080fd5b5061132f613e5e565b6040518082815260200191505060405180910390f35b34801561135157600080fd5b506113be6004803603606081101561136857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613e64565b005b3480156113cc57600080fd5b506113d56142ef565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156114155780820151818401526020810190506113fa565b50505050905090810190601f1680156114425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050601960f81b600160f81b6006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260010183815260200182815260200194505050505060405160208183030381529060405280519060200120915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116755750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6116e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600454146119cd576119cc816121d3565b5b5050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960001b81565b600080611a4886868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611450565b90506000848490501415611ae557600060076000838152602001908152602001600020541415611ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f48617368206e6f7420617070726f76656400000000000000000000000000000081525060200191505060405180910390fd5b611b7b565b611b7a8187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000614328565b5b6320c13b0b60e01b915050949350505050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c595750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d2b5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061583f6030913960400191505060405180910390fd5b611d8d858585855a614b14565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611e9d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611f0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b6003548111156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156e26023913960400191505060405180910390fd5b600181101561230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157b86024913960400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b600060606123ab8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8d8d8d600554613c4a565b905060056000815480929190600101919050555061241781805190602001208286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001614328565b885a1015612470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158c8602a913960400191505060405180910390fd5b60005a90506124e18f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008f1480156124d0575060008d145b6124da578e6124dc565b5a5b614b14565b92506124f65a82614c2790919063ffffffff16565b90508261253c577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c82805190602001206040518082815260200191505060405180910390a15b600088111561255357612552818a8a8a8a614c47565b5b50509c9b505050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461260e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061564e6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b6001600760006127ae85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611450565b8152602001908152602001600020819055505050565b600181565b600181565b6060806003546040519080825280602002602001820160405280156128025781602001602082028038833980820191505090505b5090506000809050600060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461295a57808383815181106128b157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612870565b82935050505090565b6040518060400160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b6000801b60065414612a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960001b30604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405160208183030381529060405280519060200120600681905550612b2b898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050614ddd565b6000821115612b4457612b4382600060018685614c47565b5b505050505050505050565b60055481565b60606000809050600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612c6557600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612bc2565b606082604051908082528060200260200182016040528015612c965781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612deb5781818481518110612d4257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612d01565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b81565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ea1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b60005a9050612ef7878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614b14565b612f0057600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f8d578082015181840152602081019050612f72565b50505050905090810190601f168015612fba5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b81565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000208190555050565b600061315e8b8b8b8b8b8b8b8b8b8b613c4a565b8051906020012090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156132635750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6132d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146133b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806156ba6028913960400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156136695750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6136db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146137dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156138465750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6138b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461399b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061575c6026913960400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8c8c8c805190602001208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a8152602001898152602001886002811115613cda57fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b6006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ee8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b806001600354031015613f46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806157056035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015613fb05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614105576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061575c6026913960400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600454146142ea576142e9816121d3565b5b505050565b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b61433e6041600454614df790919063ffffffff16565b825110156143b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5369676e617475726573206461746120746f6f2073686f72740000000000000081525060200191505060405180910390fd5b600080905060008060008060008090505b600454811015614b08576143d98882614e31565b80945081955082965050505060008460ff161415614772578260001c945061440d6041600454614df790919063ffffffff16565b8260001c1015614468576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806157dc6037913960400191505060405180910390fd5b875161448160208460001c614e6090919063ffffffff16565b11156144d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061586f6037913960400191505060405180910390fd5b60006020838a0101519050885161450e8261450060208760001c614e6090919063ffffffff16565b614e6090919063ffffffff16565b1115614565576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806157826036913960400191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b838110156146075780820151818401526020810190506145ec565b50505050905090810190601f1680156146345780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561466d578082015181840152602081019050614652565b50505050905090810190601f16801561469a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156146bb57600080fd5b505af11580156146cf573d6000803e3d6000fd5b505050506040513d60208110156146e557600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461476b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156976023913960400191505060405180910390fd5b5050614986565b60018460ff16141561491b578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061480f57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b614881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4861736820686173206e6f74206265656e20617070726f76656400000000000081525060200191505060405180910390fd5b8680156148ba57508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15614916576000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c8152602001908152602001600020819055505b614985565b60018a85858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614978573d6000803e3d6000fd5b5050506020604051035194505b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015614a4d5750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015614a865750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b614af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e76616c6964206f776e65722070726f76696465640000000000000000000081525060200191505060405180910390fd5b84955080806001019150506143c5565b50505050505050505050565b6000806002811115614b2257fe5b836002811115614b2e57fe5b1415614b4757614b4086868685614e7f565b9050614c1e565b60016002811115614b5457fe5b836002811115614b6057fe5b1415614b7857614b71868584614e98565b9050614c1d565b6000614b8385614eaf565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b600082821115614c3657600080fd5b600082840390508091505092915050565b6000614c6e84614c608789614e6090919063ffffffff16565b614df790919063ffffffff16565b905060008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614cab5782614cad565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614d73578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050614d6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806158a66022913960400191505060405180910390fd5b614dd4565b614d7e848284614ec1565b614dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061573a6022913960400191505060405180910390fd5b5b50505050505050565b614de78484614fda565b614df18282615433565b50505050565b600080831415614e0a5760009050614e2b565b6000828402905082848281614e1b57fe5b0414614e2657600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e7557600080fd5b8091505092915050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114614fbd5760208114614fc55760009450614fcf565b829450614fcf565b8151158315171594505b505050509392505050565b600060045414615052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b81518111156150ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156e26023913960400191505060405180910390fd5b6001811015615106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157b86024913960400191505060405180910390fd5b60006001905060008090505b835181101561539f57600084828151811061512957fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561519d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61520f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250508080600101915050615112565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156726025913960400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614615649576155d682825a614e98565b615648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564496e76616c696420636f6e7472616374207369676e61747572652070726f7669646564496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465645468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a2064617461206e6f7420636f6d706c6574655468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a20696e736964652073746174696320706172744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a206c656e677468206e6f742070726573656e74436f756c64206e6f74207061792067617320636f73747320776974682065746865724e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6ea165627a7a72305820617ca3b5dfc2ee7564fd732ebeaa405ec1fe414c23e61bbd132bc7417fecf59e0029", - "deployedBytecode": "0x6080604052600436106101e35760003560e01c8063a3f4df7e11610102578063d8d11f7811610095578063e86637db11610064578063e86637db14611139578063f698da251461131a578063f8dc5dd914611345578063ffa1ad74146113c0576101e3565b8063d8d11f7814610e90578063e009cfde1461100c578063e318b52b1461107d578063e75235b81461110e576101e3565b8063c0856ffc116100d1578063c0856ffc14610d2e578063c4ca3a9c14610d59578063ccafc38714610e2a578063d4d9bdcd14610e55576101e3565b8063a3f4df7e14610ab8578063a97ab18a14610b48578063affed0e014610c97578063b2494df314610cc2576101e3565b8063694e80c31161017a57806385a5affe1161014957806385a5affe1461091857806385e332cd1461099e5780638cff6355146109f5578063a0e67e2b14610a4c576101e3565b8063694e80c3146106945780636a761202146106cf5780637d832974146108585780637de7edef146108c7576101e3565b80632f54bf6e116101b65780632f54bf6e14610474578063468721a7146104dd5780635ae6bd37146105f4578063610b592514610643576101e3565b80630a1028c4146101e55780630d582f13146102c15780631db61b541461031c57806320c13b0b14610347575b005b3480156101f157600080fd5b506102ab6004803603602081101561020857600080fd5b810190808035906020019064010000000081111561022557600080fd5b82018360208201111561023757600080fd5b8035906020019184600183028401116401000000008311171561025957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611450565b6040518082815260200191505060405180910390f35b3480156102cd57600080fd5b5061031a600480360360408110156102e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611587565b005b34801561032857600080fd5b506103316119d1565b6040518082815260200191505060405180910390f35b34801561035357600080fd5b506104206004803603604081101561036a57600080fd5b810190808035906020019064010000000081111561038757600080fd5b82018360208201111561039957600080fd5b803590602001918460018302840111640100000000831117156103bb57600080fd5b9091929391929390803590602001906401000000008111156103dc57600080fd5b8201836020820111156103ee57600080fd5b8035906020019184600183028401116401000000008311171561041057600080fd5b90919293919293905050506119f8565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561048057600080fd5b506104c36004803603602081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b8e565b604051808215151515815260200191505060405180910390f35b3480156104e957600080fd5b506105da6004803603608081101561050057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054757600080fd5b82018360208201111561055957600080fd5b8035906020019184600183028401116401000000008311171561057b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190505050611c60565b604051808215151515815260200191505060405180910390f35b34801561060057600080fd5b5061062d6004803603602081101561061757600080fd5b8101908080359060200190929190505050611d97565b6040518082815260200191505060405180910390f35b34801561064f57600080fd5b506106926004803603602081101561066657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611daf565b005b3480156106a057600080fd5b506106cd600480360360208110156106b757600080fd5b81019080803590602001909291905050506121d3565b005b3480156106db57600080fd5b5061083e60048036036101408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561073a57600080fd5b82018360208201111561074c57600080fd5b8035906020019184600183028401116401000000008311171561076e57600080fd5b9091929391929390803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184600183028401116401000000008311171561082e57600080fd5b909192939192939050505061234f565b604051808215151515815260200191505060405180910390f35b34801561086457600080fd5b506108b16004803603604081101561087b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612565565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610916600480360360208110156108ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061258a565b005b34801561092457600080fd5b5061099c6004803603602081101561093b57600080fd5b810190808035906020019064010000000081111561095857600080fd5b82018360208201111561096a57600080fd5b8035906020019184600183028401116401000000008311171561098c57600080fd5b90919293919293905050506126d7565b005b3480156109aa57600080fd5b506109b36127c4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a0157600080fd5b50610a0a6127c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5857600080fd5b50610a616127ce565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610aa4578082015181840152602081019050610a89565b505050509050019250505060405180910390f35b348015610ac457600080fd5b50610acd612963565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b0d578082015181840152602081019050610af2565b50505050905090810190601f168015610b3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b5457600080fd5b50610c95600480360360e0811015610b6b57600080fd5b8101908080359060200190640100000000811115610b8857600080fd5b820183602082011115610b9a57600080fd5b80359060200191846020830284011164010000000083111715610bbc57600080fd5b909192939192939080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610c0757600080fd5b820183602082011115610c1957600080fd5b80359060200191846001830284011164010000000083111715610c3b57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299c565b005b348015610ca357600080fd5b50610cac612b4f565b6040518082815260200191505060405180910390f35b348015610cce57600080fd5b50610cd7612b55565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d1a578082015181840152602081019050610cff565b505050509050019250505060405180910390f35b348015610d3a57600080fd5b50610d43612df4565b6040518082815260200191505060405180910390f35b348015610d6557600080fd5b50610e1460048036036080811015610d7c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610dc357600080fd5b820183602082011115610dd557600080fd5b80359060200191846001830284011164010000000083111715610df757600080fd5b9091929391929390803560ff169060200190929190505050612e1b565b6040518082815260200191505060405180910390f35b348015610e3657600080fd5b50610e3f612fc8565b6040518082815260200191505060405180910390f35b348015610e6157600080fd5b50610e8e60048036036020811015610e7857600080fd5b8101908080359060200190929190505050612fef565b005b348015610e9c57600080fd5b50610ff66004803603610140811015610eb457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610efb57600080fd5b820183602082011115610f0d57600080fd5b80359060200191846001830284011164010000000083111715610f2f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061314a565b6040518082815260200191505060405180910390f35b34801561101857600080fd5b5061107b6004803603604081101561102f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613175565b005b34801561108957600080fd5b5061110c600480360360608110156110a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061357b565b005b34801561111a57600080fd5b50611123613c40565b6040518082815260200191505060405180910390f35b34801561114557600080fd5b5061129f600480360361014081101561115d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156111a457600080fd5b8201836020820111156111b657600080fd5b803590602001918460018302840111640100000000831117156111d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c4a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156112df5780820151818401526020810190506112c4565b50505050905090810190601f16801561130c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561132657600080fd5b5061132f613e5e565b6040518082815260200191505060405180910390f35b34801561135157600080fd5b506113be6004803603606081101561136857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613e64565b005b3480156113cc57600080fd5b506113d56142ef565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156114155780820151818401526020810190506113fa565b50505050905090810190601f1680156114425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000807f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b83805190602001206040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050601960f81b600160f81b6006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260010183815260200182815260200194505050505060405160208183030381529060405280519060200120915050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116755750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6116e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600454146119cd576119cc816121d3565b5b5050565b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960001b81565b600080611a4886868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611450565b90506000848490501415611ae557600060076000838152602001908152602001600020541415611ae0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f48617368206e6f7420617070726f76656400000000000000000000000000000081525060200191505060405180910390fd5b611b7b565b611b7a8187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506000614328565b5b6320c13b0b60e01b915050949350505050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c595750600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d2b5750600073ffffffffffffffffffffffffffffffffffffffff16600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b611d80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061583f6030913960400191505060405180910390fd5b611d8d858585855a614b14565b9050949350505050565b60076020528060005260406000206000915090505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611e9d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611f0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b6003548111156122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156e26023913960400191505060405180910390fd5b600181101561230c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157b86024913960400191505060405180910390fd5b806004819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936004546040518082815260200191505060405180910390a150565b600060606123ab8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8d8d8d600554613c4a565b905060056000815480929190600101919050555061241781805190602001208286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506001614328565b885a1015612470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806158c8602a913960400191505060405180910390fd5b60005a90506124e18f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e60008f1480156124d0575060008d145b6124da578e6124dc565b5a5b614b14565b92506124f65a82614c2790919063ffffffff16565b90508261253c577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c82805190602001206040518082815260200191505060405180910390a15b600088111561255357612552818a8a8a8a614c47565b5b50509c9b505050505050505050505050565b6008602052816000526040600020602052806000526040600020600091509150505481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461260e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061564e6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b6001600760006127ae85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611450565b8152602001908152602001600020819055505050565b600181565b600181565b6060806003546040519080825280602002602001820160405280156128025781602001602082028038833980820191505090505b5090506000809050600060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461295a57808383815181106128b157fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612870565b82935050505090565b6040518060400160405280600b81526020017f476e6f736973205361666500000000000000000000000000000000000000000081525081565b6000801b60065414612a16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f446f6d61696e20536570617261746f7220616c7265616479207365742100000081525060200191505060405180910390fd5b7f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d474960001b30604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405160208183030381529060405280519060200120600681905550612b2b898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050888888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050614ddd565b6000821115612b4457612b4382600060018685614c47565b5b505050505050505050565b60055481565b60606000809050600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612c6557600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050612bc2565b606082604051908082528060200260200182016040528015612c965781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612deb5781818481518110612d4257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612d01565b80935050505090565b7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca60001b81565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ea1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b60005a9050612ef7878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050865a614b14565b612f0057600080fd5b60005a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f8d578082015181840152602081019050612f72565b50505050905090810190601f168015612fba5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b7fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b81565b600073ffffffffffffffffffffffffffffffffffffffff16600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156130f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f6e6c79206f776e6572732063616e20617070726f766520612068617368000081525060200191505060405180910390fd5b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000208190555050565b600061315e8b8b8b8b8b8b8b8b8b8b613c4a565b8051906020012090509a9950505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156132635750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6132d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146133b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806156ba6028913960400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156136695750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6136db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146137dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156138465750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6138b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461399b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061575c6026913960400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600454905090565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8c8c8c805190602001208c8c8c8c8c8c8c604051602001808c81526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a8152602001898152602001886002811115613cda57fe5b60ff1681526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001209050601960f81b600160f81b6006548360405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101847effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018381526020018281526020019450505050506040516020818303038152906040529150509a9950505050505050505050565b60065481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613ee8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615813602c913960400191505060405180910390fd5b806001600354031015613f46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806157056035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015613fb05750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b614022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614614105576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061575c6026913960400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600454146142ea576142e9816121d3565b5b505050565b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b61433e6041600454614df790919063ffffffff16565b825110156143b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5369676e617475726573206461746120746f6f2073686f72740000000000000081525060200191505060405180910390fd5b600080905060008060008060008090505b600454811015614b08576143d98882614e31565b80945081955082965050505060008460ff161415614772578260001c945061440d6041600454614df790919063ffffffff16565b8260001c1015614468576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806157dc6037913960400191505060405180910390fd5b875161448160208460001c614e6090919063ffffffff16565b11156144d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061586f6037913960400191505060405180910390fd5b60006020838a0101519050885161450e8261450060208760001c614e6090919063ffffffff16565b614e6090919063ffffffff16565b1115614565576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806157826036913960400191505060405180910390fd5b60606020848b010190506320c13b0b60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff166320c13b0b8d846040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019080838360005b838110156146075780820151818401526020810190506145ec565b50505050905090810190601f1680156146345780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561466d578082015181840152602081019050614652565b50505050905090810190601f16801561469a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156146bb57600080fd5b505af11580156146cf573d6000803e3d6000fd5b505050506040513d60208110156146e557600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461476b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156976023913960400191505060405180910390fd5b5050614986565b60018460ff16141561491b578260001c94508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061480f57506000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c81526020019081526020016000205414155b614881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4861736820686173206e6f74206265656e20617070726f76656400000000000081525060200191505060405180910390fd5b8680156148ba57508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15614916576000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c8152602001908152602001600020819055505b614985565b60018a85858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614978573d6000803e3d6000fd5b5050506020604051035194505b5b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16118015614a4d5750600073ffffffffffffffffffffffffffffffffffffffff16600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015614a865750600173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b614af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f496e76616c6964206f776e65722070726f76696465640000000000000000000081525060200191505060405180910390fd5b84955080806001019150506143c5565b50505050505050505050565b6000806002811115614b2257fe5b836002811115614b2e57fe5b1415614b4757614b4086868685614e7f565b9050614c1e565b60016002811115614b5457fe5b836002811115614b6057fe5b1415614b7857614b71868584614e98565b9050614c1d565b6000614b8385614eaf565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b600082821115614c3657600080fd5b600082840390508091505092915050565b6000614c6e84614c608789614e6090919063ffffffff16565b614df790919063ffffffff16565b905060008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614cab5782614cad565b325b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614d73578073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050614d6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806158a66022913960400191505060405180910390fd5b614dd4565b614d7e848284614ec1565b614dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061573a6022913960400191505060405180910390fd5b5b50505050505050565b614de78484614fda565b614df18282615433565b50505050565b600080831415614e0a5760009050614e2b565b6000828402905082848281614e1b57fe5b0414614e2657600080fd5b809150505b92915050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b600080828401905083811015614e7557600080fd5b8091505092915050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114614fbd5760208114614fc55760009450614fcf565b829450614fcf565b8151158315171594505b505050509392505050565b600060045414615052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b81518111156150ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806156e26023913960400191505060405180910390fd5b6001811015615106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157b86024913960400191505060405180910390fd5b60006001905060008090505b835181101561539f57600084828151811061512957fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561519d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61520f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250508080600101915050615112565b506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550825160038190555081600481905550505050565b600073ffffffffffffffffffffffffffffffffffffffff1660016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614615518576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156726025913960400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614615649576155d682825a614e98565b615648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564496e76616c696420636f6e7472616374207369676e61747572652070726f7669646564496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465645468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a2064617461206e6f7420636f6d706c6574655468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a20696e736964652073746174696320706172744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a206c656e677468206e6f742070726573656e74436f756c64206e6f74207061792067617320636f73747320776974682065746865724e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6ea165627a7a72305820617ca3b5dfc2ee7564fd732ebeaa405ec1fe414c23e61bbd132bc7417fecf59e0029", - "sourceMap": "568:16437:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;568:16437:0;;;;;;;", - "deployedSourceMap": "568:16437:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14069:367;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14069:367:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14069:367:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;14069:367:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14069:367:0;;;;;;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;14069:367:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;14069:367:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2250:645:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2250:645:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2250:645:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;887:118:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;887:118:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13404:507;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13404:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13404:507:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13404:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13404:507:0;;;;;;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;13404:507:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13404:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13404:507:0;;;;;;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;13404:507:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6022:166:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6022:166:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6022:166:6;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2909:479:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2909:479:5;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2909:479:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2909:479:5;;;;;;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;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1716:49:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1716:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1716:49:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1207:540:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:540:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1207:540:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;5454:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5454:441:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5454:441:6;;;;;;;;;;;;;;;;;:::i;:::-;;4316:1478:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4316:1478:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4316:1478:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4316:1478:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4316:1478:0;;;;;;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;4316:1478:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4316:1478:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4316:1478:0;;;;;;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;4316:1478:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1876:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1876:69:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1876:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;626:257:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;12929:142:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12929:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12929:142:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;12929:142:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12929:142:0;;;;;;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;12929:142:0;;;;;;;;;;;;:::i;:::-;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6270:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6270:465:6;;;:::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;6270:465:6;;;;;;;;;;;;;;;;;713:43:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;713:43:0;;;:::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;713:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2487:799;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2487:799:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2487:799:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2487:799:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2487:799:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2487:799:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2487:799:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2487:799:0;;;;;;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;2487:799:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1557:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1557:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3467:745:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3467:745:5;;;:::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;3467:745:5;;;;;;;;;;;;;;;;;1396:110:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1396:110:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11727:583;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11727:583:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;11727:583:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11727:583:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11727:583:0;;;;;;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;11727:583:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1215:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1215:109:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12554:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12554:212:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12554:212:0;;;;;;;;;;;;;;;;;:::i;:::-;;16493:510;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16493:510:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;16493:510:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;16493:510:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;16493:510:0;;;;;;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;16493:510:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;16493:510:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2008:565:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:565:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2008:565:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4406:859:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4406:859:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4406:859:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5901:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5901:115:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15149:658:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15149:658:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;15149:658:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;15149:658:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15149:658:0;;;;;;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;15149:658:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;15149:658:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;15149:658:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1583:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1583:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3237:835:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3237:835:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3237:835:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;762:40:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;762:40:0;;;:::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;762:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14069:367;14174:7;14197:23;1440:66;14257:17;;14286:7;14276:18;;;;;;14246:49;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14246::0;;;14223:82;;;;;;14197:108;;14367:4;14362:10;;14379:4;14374:10;;14386:15;;14403;14345:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14345:74:0;;;14322:107;;;;;;14315:114;;;14069:367;;;:::o;2250:645:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:1:6;2413:19;;:5;:19;;;;:47;;;;;469:3;2436:24;;:5;:24;;;;2413:47;2405:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:1;2553:27;;:6;:13;2560:5;2553:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;2545:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:6;:23;469:3;2638:23;;;;;;;;;;;;;;;;;;;;;;;;;2622:6;:13;2629:5;2622:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2697:5;2671:6;:23;469:3;2671:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2712:10;;:12;;;;;;;;;;;;;2739:17;2750:5;2739:17;;;;;;;;;;;;;;;;;;;;;;2837:10;2824:9;;:23;2820:68;;2861:27;2877:10;2861:15;:27::i;:::-;2820:68;2250:645;;:::o;887:118:0:-;939:66;887:118;;;:::o;13404:507::-;13513:6;13535:19;13557:21;13572:5;;13557:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13557:21:0;;;;;;:14;:21::i;:::-;13535:43;;13613:1;13592:10;;:17;;:22;13588:281;;;13669:1;13638:14;:27;13653:11;13638:27;;;;;;;;;;;;:32;;13630:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13588:281;;;13804:54;13820:11;13833:5;;13804:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13804:54:0;;;;;;13840:10;;13804:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13804:54:0;;;;;;13852:5;13804:15;:54::i;:::-;13588:281;164:10:14;13885:19:0;;13878:26;;;13404:507;;;;;;:::o;6022:166:6:-;6099:4;469:3;6126:24;;:5;:24;;;;:55;;;;;6179:1;6154:27;;:6;:13;6161:5;6154:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;6126:55;6119:62;;6022:166;;;:::o;2909:479:5:-;3048:12;539:3;3133:30;;:10;:30;;;;:67;;;;;3198:1;3167:33;;:7;:19;3175:10;3167:19;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;3133:67;3125:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3335:46;3343:2;3347:5;3354:4;3360:9;3371;3335:7;:46::i;:::-;3325:56;;2909:479;;;;;;:::o;1716:49:0:-;;;;;;;;;;;;;;;;;:::o;1207:540:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1381:1:5;1354:29;;1362:6;1354:29;;;;:68;;;;;539:3;1387:35;;1395:6;1387:35;;;;1354:68;1346:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:1;1517:38;;:7;:24;1533:6;1517:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1509:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1626:7;:25;539:3;1626:25;;;;;;;;;;;;;;;;;;;;;;;;;1599:7;:24;1615:6;1599:24;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;1697:6;1661:7;:25;539:3;1661:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1719:21;1733:6;1719:21;;;;;;;;;;;;;;;;;;;;;;1207:540;:::o;5454:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:10:6;;5624;:24;;5616:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:1;5758:10;:15;;5750:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5836:10;5824:9;:22;;;;5861:27;5878:9;;5861:27;;;;;;;;;;;;;;;;;;5454:441;:::o;4316:1478:0:-;4666:12;4694:23;4720:194;4755:2;4759:5;4766:4;;4720:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4720:194:0;;;;;;4772:9;4815;4826:7;4835:8;4845;4855:14;4899:5;;4720:21;:194::i;:::-;4694:220;;4975:5;;:7;;;;;;;;;;;;;4992:68;5018:10;5008:21;;;;;;5031:10;5043;;4992:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4992:68:0;;;;;;5055:4;4992:15;:68::i;:::-;5091:9;5078;:22;;5070:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:15;5175:9;5157:27;;5311:92;5319:2;5323:5;5330:4;;5311:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5311:92:0;;;;;;5336:9;5360:1;5347:9;:14;:31;;;;;5377:1;5365:8;:13;5347:31;:55;;5393:9;5347:55;;;5381:9;5347:55;5311:7;:92::i;:::-;5301:102;;5423:22;5435:9;5423:7;:11;;:22;;;;:::i;:::-;5413:32;;5460:7;5455:82;;5488:38;5514:10;5504:21;;;;;;5488:38;;;;;;;;;;;;;;;;;;5455:82;5693:1;5682:8;:12;5678:110;;;5710:67;5724:7;5733;5742:8;5752;5762:14;5710:13;:67::i;:::-;5678:110;4316:1478;;;;;;;;;;;;;;;;:::o;1876:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;626:257:9:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o;12929:142:0:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13063:1:0;13023:14;:37;13038:21;13053:5;;13038:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;13038:21:0;;;;;;:14;:21::i;:::-;13023:37;;;;;;;;;;;:41;;;;12929:142;;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6270:465::-;6336:16;6368:22;6407:10;;6393:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6393:25:6;;;;6368:50;;6462:13;6478:1;6462:17;;6489:20;6512:6;:23;469:3;6512:23;;;;;;;;;;;;;;;;;;;;;;;;;6489:46;;6545:162;469:3;6551:31;;:12;:31;;;6545:162;;6613:12;6598:5;6604;6598:12;;;;;;;;;;;;;:27;;;;;;;;;;;6654:6;:20;6661:12;6654:20;;;;;;;;;;;;;;;;;;;;;;;;;6639:35;;6688:8;;;;;;;6545:162;;;6723:5;6716:12;;;;;6270:465;:::o;713:43:0:-;;;;;;;;;;;;;;;;;;;:::o;2487:799::-;2713:1;2694:20;;:15;;:20;2686:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;939:66;2797:25;;2824:4;2786:43;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2786:43:0;;;2776:54;;;;;;2758:15;:72;;;;2840:40;2850:7;;2840:40;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2840:40:0;;;;;;2859:10;2871:2;2875:4;;2840:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2840:40:0;;;;;;:9;:40::i;:::-;2913:1;2903:7;:11;2899:380;;;3209:59;3223:7;3232:1;3235;3238:12;3252:15;3209:13;:59::i;:::-;2899:380;2487:799;;;;;;;;;:::o;1557:20::-;;;;:::o;3467:745:5:-;3534:16;3600:19;3622:1;3600:23;;3633:21;3657:7;:25;539:3;3657:25;;;;;;;;;;;;;;;;;;;;;;;;;3633:49;;3692:132;539:3;3698:33;;:13;:33;;;3692:132;;3763:7;:22;3771:13;3763:22;;;;;;;;;;;;;;;;;;;;;;;;;3747:38;;3799:14;;;;;;;3692:132;;;3833:22;3872:11;3858:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3858:26:5;;;;3833:51;;3942:1;3928:15;;3969:7;:25;539:3;3969:25;;;;;;;;;;;;;;;;;;;;;;;;;3953:41;;4004:180;539:3;4010:33;;:13;:33;;;4004:180;;4080:13;4059:5;4065:11;4059:18;;;;;;;;;;;;;:34;;;;;;;;;;;4123:7;:22;4131:13;4123:22;;;;;;;;;;;;;;;;;;;;;;;;;4107:38;;4159:14;;;;;;;4004:180;;;4200:5;4193:12;;;;;3467:745;:::o;1396:110:0:-;1440:66;1396:110;;;:::o;11727:583::-;11877:7;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11900:16:0;11919:9;11900:28;;12082:46;12090:2;12094:5;12101:4;;12082:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;12082:46:0;;;;;;12107:9;12118;12082:7;:46::i;:::-;12074:55;;;;;;12139:19;12172:9;12161:8;:20;12139:42;;12289:11;12272:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12272:29:0;;;12258:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;12258:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:109;1258:66;1215:109;;;:::o;12554:212::-;12667:1;12637:32;;:6;:18;12644:10;12637:18;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;12629:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12758:1;12714:14;:26;12729:10;12714:26;;;;;;;;;;;;;;;:41;12741:13;12714:41;;;;;;;;;;;:45;;;;12554:212;:::o;16493:510::-;16842:7;16882:113;16904:2;16908:5;16915:4;16921:9;16932;16943:7;16952:8;16962;16972:14;16988:6;16882:21;:113::i;:::-;16872:124;;;;;;16865:131;;16493:510;;;;;;;;;;;;:::o;2008:565:5:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2230:1:5;2203:29;;2211:6;2203:29;;;;:68;;;;;539:3;2236:35;;2244:6;2236:35;;;;2203:68;2195:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:6;2325:47;;:7;:28;2341:10;2325:28;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;2317:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2458:7;:24;2474:6;2458:24;;;;;;;;;;;;;;;;;;;;;;;;;2427:7;:28;2443:10;2427:28;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;2527:1;2492:7;:24;2508:6;2492:24;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2544:22;2559:6;2544:22;;;;;;;;;;;;;;;;;;;;;;2008:565;;:::o;4406:859:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4597:1:6;4577:22;;:8;:22;;;;:53;;;;;469:3;4603:27;;:8;:27;;;;4577:53;4569:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4751:1;4723:30;;:6;:16;4730:8;4723:16;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;4715:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:1;4886:22;;:8;:22;;;;:53;;;;;469:3;4912:27;;:8;:27;;;;4886:53;4878:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5013:8;4992:29;;:6;:17;4999:9;4992:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4984:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5093:6;:16;5100:8;5093:16;;;;;;;;;;;;;;;;;;;;;;;;;5074:6;:16;5081:8;5074:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5139:8;5119:6;:17;5126:9;5119:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5184:1;5157:6;:16;5164:8;5157:16;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5201:22;5214:8;5201:22;;;;;;;;;;;;;;;;;;;;;;5238:20;5249:8;5238:20;;;;;;;;;;;;;;;;;;;;;;4406:859;;;:::o;5901:115::-;5970:7;6000:9;;5993:16;;5901:115;:::o;15149:658:0:-;15501:12;15529:18;1258:66;15584:16;;15602:2;15606:5;15623:4;15613:15;;;;;;15630:9;15641;15652:7;15661:8;15671;15681:14;15697:6;15573:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15573:131:0;;;15550:164;;;;;;15529:185;;15753:4;15748:10;;15765:4;15760:10;;15772:15;;15789:10;15731:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15731:69:0;;;15724:76;;;15149:658;;;;;;;;;;;;:::o;1583:30::-;;;;:::o;3237:835:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:10:6;3458:1;3445:10;;:14;:28;;3437:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3646:1;3629:19;;:5;:19;;;;:47;;;;;469:3;3652:24;;:5;:24;;;;3629:47;3621:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3750:5;3729:26;;:6;:17;3736:9;3729:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3721:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3828:6;:13;3835:5;3828:13;;;;;;;;;;;;;;;;;;;;;;;;;3808:6;:17;3815:9;3808:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3875:1;3851:6;:13;3858:5;3851:13;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3887:10;;:12;;;;;;;;;;;;;;3914:19;3927:5;3914:19;;;;;;;;;;;;;;;;;;;;;;4014:10;4001:9;;:23;3997:68;;4038:27;4054:10;4038:15;:27::i;:::-;3997:68;3237:835;;;:::o;762:40:0:-;;;;;;;;;;;;;;;;;;;:::o;7072:3744::-;7304:17;7318:2;7304:9;;:13;;:17;;;;:::i;:::-;7283:10;:17;:38;;7275:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7413:17;7441:1;7413:30;;7453:20;7483:7;7500:9;7519;7538;7566:1;7562:5;;7557:3253;7573:9;;7569:1;:13;7557:3253;;;7615:29;7630:10;7642:1;7615:14;:29::i;:::-;7603:41;;;;;;;;;;;;7724:1;7719;:6;;;7715:2900;;;7875:1;7867:10;;7844:34;;8279:17;8293:2;8279:9;;:13;;:17;;;;:::i;:::-;8273:1;8265:10;;:31;;8257:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8518:10;:17;8496:18;8511:2;8504:1;8496:10;;:14;;:18;;;;:::i;:::-;:39;;8488:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8739:28;8942:4;8938:1;8926:10;8922:18;8918:29;8912:36;8888:60;;9039:10;:17;8991:44;9014:20;8991:18;9006:2;8999:1;8991:10;;:14;;:18;;;;:::i;:::-;:22;;:44;;;;:::i;:::-;:65;;8983:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9169:30;9504:4;9500:1;9488:10;9484:18;9480:29;9459:50;;164:10:14;9631:19:0;;9552:98;;;9572:12;9552:50;;;9603:4;9609:17;9552:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9552:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9552:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9552:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9552:75:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9552:75:0;;;;;;;;;;;;;;;;:98;;;;9544:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7715:2900;;;;;9773:1;9768;:6;;;9764:851;;;9920:1;9912:10;;9889:34;;10108:12;10094:26;;:10;:26;;;:73;;;;10166:1;10124:14;:28;10139:12;10124:28;;;;;;;;;;;;;;;:38;10153:8;10124:38;;;;;;;;;;;;:43;;10094:73;10086:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10320:11;:41;;;;;10349:12;10335:26;;:10;:26;;;;10320:41;10316:130;;;10426:1;10385:14;:28;10400:12;10385:28;;;;;;;;;;;;;;;:38;10414:8;10385:38;;;;;;;;;;;:42;;;;10316:130;9764:851;;;10572:28;10582:8;10592:1;10595;10598;10572:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:28:0;;;;;;;;10557:43;;9764:851;7715:2900;10652:9;10637:24;;:12;:24;;;:62;;;;;10697:1;10665:34;;:6;:20;10672:12;10665:20;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;10637:62;:97;;;;;469:3:6;10703:31:0;;:12;:31;;;;10637:97;10628:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10787:12;10775:24;;7584:3;;;;;;;7557:3253;;;7072:3744;;;;;;;;;;:::o;313:564:3:-;451:12;496:19;483:32;;;;;;;;:9;:32;;;;;;;;;479:392;;;539:35;551:2;555:5;562:4;568:5;539:11;:35::i;:::-;529:45;;479:392;;;606:27;593:40;;;;;;;;:9;:40;;;;;;;;;589:282;;;657:36;677:2;681:4;687:5;657:19;:36::i;:::-;647:46;;589:282;;;722:19;744;758:4;744:13;:19::i;:::-;722:41;;810:1;787:25;;:11;:25;;;;777:35;;831:29;848:11;831:29;;;;;;;;;;;;;;;;;;;;;;589:282;;479:392;313:564;;;;;;;:::o;1133:131:13:-;1191:7;1219:1;1214;:6;;1206:15;;;;;;1227:9;1243:1;1239;:5;1227:17;;1258:1;1251:8;;;1133:131;;;;:::o;5800:717:0:-;6001:14;6018:34;6043:8;6018:20;6030:7;6018;:11;;:20;;;;:::i;:::-;:24;;:34;;;;:::i;:::-;6001:51;;6120:24;6173:1;6147:28;;:14;:28;;;:57;;6190:14;6147:57;;;6178:9;6147:57;6120:84;;6238:1;6218:22;;:8;:22;;;6214:297;;;6321:8;:13;;:21;6335:6;6321:21;;;;;;;;;;;;;;;;;;;;;;;6313:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:297;;;6420:41;6434:8;6444;6454:6;6420:13;:41::i;:::-;6412:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:297;5800:717;;;;;;;:::o;740:323:2:-;867:32;879:7;888:10;867:11;:32::i;:::-;1034:22;1047:2;1051:4;1034:12;:22::i;:::-;740:323;;;;:::o;259:381:13:-;317:7;546:1;541;:6;537:35;;;564:1;557:8;;;;537:35;578:9;594:1;590;:5;578:17;;618:1;613;609;:5;;;;;;:10;601:19;;;;;;634:1;627:8;;;259:381;;;;;:::o;1220:921:12:-;1329:7;1338:9;1349;1649:3;1643:4;1639:14;1711:4;1697:12;1693:23;1681:10;1677:40;1671:47;1666:52;;1776:4;1762:12;1758:23;1746:10;1742:40;1736:47;1731:52;;2120:4;2111;2097:12;2093:23;2081:10;2077:40;2071:47;2067:58;2062:63;;1605:530;;;;;;:::o;1327:131:13:-;1385:7;1400:9;1416:1;1412;:5;1400:17;;1436:1;1431;:6;;1423:15;;;;;;1452:1;1445:8;;;1327:131;;;;:::o;883:316:3:-;999:12;1181:1;1178;1171:4;1165:11;1158:4;1152;1148:15;1141:5;1137:2;1130:5;1125:58;1114:69;;1100:93;;;;;;:::o;1205:310::-;1314:12;1497:1;1494;1487:4;1481:11;1474:4;1468;1464:15;1460:2;1453:5;1440:59;1429:70;;1415:94;;;;;:::o;1521:268::-;1597:19;1767:4;1761:11;1754:4;1748;1744:15;1741:1;1734:39;1719:54;;1705:78;;;:::o;430:752:10:-;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;775:1235:6:-;1018:1;1005:9;;:14;997:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:7;:14;1147:10;:28;;1139:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1299:1;1285:10;:15;;1277:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1388:20;469:3;1388:38;;1441:9;1453:1;1441:13;;1436:451;1460:7;:14;1456:1;:18;1436:451;;;1540:13;1556:7;1564:1;1556:10;;;;;;;;;;;;;;1540:26;;1605:1;1588:19;;:5;:19;;;;:47;;;;;469:3;1611:24;;:5;:24;;;;1588:47;1580:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1761:1;1736:27;;:6;:13;1743:5;1736:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;1728:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1837:5;1814:6;:20;1821:12;1814:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1871:5;1856:20;;1436:451;1476:3;;;;;;;1436:451;;;;469:3;1896:6;:20;1903:12;1896:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1957:7;:14;1944:10;:27;;;;1993:10;1981:9;:22;;;;775:1235;;;:::o;606:434:5:-;735:1;698:39;;:7;:25;539:3;698:25;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;690:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:3;789:7;:25;539:3;789:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;861:1;847:16;;:2;:16;;;843:190;;957:40;977:2;981:4;987:9;957:19;:40::i;:::-;949:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;843:190;606:434;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"./base/BaseSafe.sol\";\nimport \"./common/MasterCopy.sol\";\nimport \"./common/SignatureDecoder.sol\";\nimport \"./common/SecuredTokenTransfer.sol\";\nimport \"./interfaces/ISignatureValidator.sol\";\nimport \"./external/SafeMath.sol\";\n\n/// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - \n/// @author Richard Meissner - \n/// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment\ncontract GnosisSafe is MasterCopy, BaseSafe, SignatureDecoder, SecuredTokenTransfer, ISignatureValidator {\n\n using SafeMath for uint256;\n\n string public constant NAME = \"Gnosis Safe\";\n string public constant VERSION = \"1.0.0\";\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPARATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n //keccak256(\n // \"SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)\"\n //);\n bytes32 public constant SAFE_TX_TYPEHASH = 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8;\n\n //keccak256(\n // \"SafeMessage(bytes message)\"\n //);\n bytes32 public constant SAFE_MSG_TYPEHASH = 0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca;\n\n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n bytes32 public domainSeparator;\n // Mapping to keep track of all message hashes that have been approve by ALL REQUIRED owners\n mapping(bytes32 => uint256) public signedMessages;\n // Mapping to keep track of all hashes (message or transaction) that have been approve by ANY owners\n mapping(address => mapping(bytes32 => uint256)) public approvedHashes;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n /// @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin)\n function setup(address[] calldata _owners, uint256 _threshold, address to, bytes calldata data, address paymentToken, uint256 payment, address payable paymentReceiver)\n external\n {\n require(domainSeparator == 0, \"Domain Separator already set!\");\n domainSeparator = keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, this));\n setupSafe(_owners, _threshold, to, data);\n \n if (payment > 0) {\n // To avoid running into issues with EIP-170 we reuse the handlePayment function (to avoid adjusting code of that has been verified we do not adjust the method itself)\n // baseGas = 0, gasPrice = 1 and gas = payment => amount = (payment + 0) * 1 = payment\n handlePayment(payment, 0, 1, paymentToken, paymentReceiver);\n } \n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails.\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 safeTxGas Gas that should be used for the Safe transaction.\n /// @param baseGas Gas costs for that are indipendent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n /// @param gasPrice Gas price that should be used for the payment calculation.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to,\n uint256 value,\n bytes calldata data,\n Enum.Operation operation,\n uint256 safeTxGas,\n uint256 baseGas,\n uint256 gasPrice,\n address gasToken,\n address payable refundReceiver,\n bytes calldata signatures\n )\n external\n returns (bool success)\n {\n bytes memory txHashData = encodeTransactionData(\n to, value, data, operation, // Transaction info\n safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, // Payment info\n nonce\n );\n // Increase nonce and execute transaction.\n nonce++;\n checkSignatures(keccak256(txHashData), txHashData, signatures, true);\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n uint256 gasUsed = gasleft();\n // If no safeTxGas has been set and the gasPrice is 0 we assume that all available gas can be used\n success = execute(to, value, data, operation, safeTxGas == 0 && gasPrice == 0 ? gasleft() : safeTxGas);\n gasUsed = gasUsed.sub(gasleft());\n if (!success) {\n emit ExecutionFailed(keccak256(txHashData));\n }\n\n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n if (gasPrice > 0) {\n handlePayment(gasUsed, baseGas, gasPrice, gasToken, refundReceiver);\n }\n }\n\n function handlePayment(\n uint256 gasUsed,\n uint256 baseGas,\n uint256 gasPrice,\n address gasToken,\n address payable refundReceiver\n )\n private\n {\n uint256 amount = gasUsed.add(baseGas).mul(gasPrice);\n // solium-disable-next-line security/no-tx-origin\n address payable receiver = refundReceiver == address(0) ? tx.origin : refundReceiver;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(receiver.send(amount), \"Could not pay gas costs with ether\");\n } else {\n require(transferToken(gasToken, receiver, amount), \"Could not pay gas costs with token\");\n }\n }\n\n /**\n * @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n * @param dataHash Hash of the data (could be either a message hash or transaction hash)\n * @param data That should be signed (this is passed to an external validator contract)\n * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n * @param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas\n */\n function checkSignatures(bytes32 dataHash, bytes memory data, bytes memory signatures, bool consumeHash)\n internal\n {\n // Check that the provided signature data is not too short\n require(signatures.length >= threshold.mul(65), \"Signatures data too short\");\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint8 v;\n bytes32 r;\n bytes32 s;\n uint256 i;\n for (i = 0; i < threshold; i++) {\n (v, r, s) = signatureSplit(signatures, i);\n // If v is 0 then it is a contract signature\n if (v == 0) {\n // When handling contract signatures the address of the contract is encoded into r\n currentOwner = address(uint256(r));\n\n // Check that signature data pointer (s) is not pointing inside the static part of the signatures bytes\n // This check is not completely accurate, since it is possible that more signatures than the threshold are send.\n // Here we only check that the pointer is not pointing inside the part that is being processed\n require(uint256(s) >= threshold.mul(65), \"Invalid contract signature location: inside static part\");\n\n // Check that signature data pointer (s) is in bounds (points to the length of data -> 32 bytes)\n require(uint256(s).add(32) <= signatures.length, \"Invalid contract signature location: length not present\");\n\n // Check if the contract signature is in bounds: start of data is s + 32 and end is start + signature length\n uint256 contractSignatureLen;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n contractSignatureLen := mload(add(add(signatures, s), 0x20))\n }\n require(uint256(s).add(32).add(contractSignatureLen) <= signatures.length, \"Invalid contract signature location: data not complete\");\n\n // Check signature\n bytes memory contractSignature;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n // The signature data for contract signatures is appended to the concatenated signatures and the offset is stored in s\n contractSignature := add(add(signatures, s), 0x20)\n }\n require(ISignatureValidator(currentOwner).isValidSignature(data, contractSignature) == EIP1271_MAGIC_VALUE, \"Invalid contract signature provided\");\n // If v is 1 then it is an approved hash\n } else if (v == 1) {\n // When handling approved hashes the address of the approver is encoded into r\n currentOwner = address(uint256(r));\n // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction\n require(msg.sender == currentOwner || approvedHashes[currentOwner][dataHash] != 0, \"Hash has not been approved\");\n // Hash has been marked for consumption. If this hash was pre-approved free storage\n if (consumeHash && msg.sender != currentOwner) {\n approvedHashes[currentOwner][dataHash] = 0;\n }\n } else {\n // Use ecrecover with the messageHash for EOA signatures\n currentOwner = ecrecover(dataHash, v, r, s);\n }\n require (currentOwner > lastOwner && owners[currentOwner] != address(0) && currentOwner != SENTINEL_OWNERS, \"Invalid owner provided\");\n lastOwner = currentOwner;\n }\n }\n\n /// @dev Allows to estimate a Safe transaction.\n /// This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n /// 1.) The method can only be called from the safe itself\n /// 2.) The response is returned with a revert\n /// When estimating set `from` to the address of the safe.\n /// Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\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 /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n function requiredTxGas(address to, uint256 value, bytes calldata data, Enum.Operation operation)\n external\n authorized\n returns (uint256)\n {\n uint256 startGas = gasleft();\n // We don't provide an error message here, as we use it to return the estimate\n // solium-disable-next-line error-reason\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n /**\n * @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n * @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.\n */\n function approveHash(bytes32 hashToApprove)\n external\n {\n require(owners[msg.sender] != address(0), \"Only owners can approve a hash\");\n approvedHashes[msg.sender][hashToApprove] = 1;\n }\n\n /**\n * @dev Marks a message as signed\n * @param _data Arbitrary length data that should be marked as signed on the behalf of address(this)\n */ \n function signMessage(bytes calldata _data) \n external\n authorized\n {\n signedMessages[getMessageHash(_data)] = 1;\n }\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n * @return a bool upon valid or invalid signature with corresponding _data\n */ \n function isValidSignature(bytes calldata _data, bytes calldata _signature)\n external\n returns (bytes4)\n {\n bytes32 messageHash = getMessageHash(_data);\n if (_signature.length == 0) {\n require(signedMessages[messageHash] != 0, \"Hash not approved\");\n } else {\n // consumeHash needs to be false, as the state should not be changed\n checkSignatures(messageHash, _data, _signature, false);\n }\n return EIP1271_MAGIC_VALUE;\n }\n\n /// @dev Returns hash of a message that can be signed by owners.\n /// @param message Message that should be hashed\n /// @return Message hash.\n function getMessageHash(\n bytes memory message\n )\n public\n view\n returns (bytes32)\n {\n bytes32 safeMessageHash = keccak256(\n abi.encode(SAFE_MSG_TYPEHASH, keccak256(message))\n );\n return keccak256(\n abi.encodePacked(byte(0x19), byte(0x01), domainSeparator, safeMessageHash)\n );\n }\n\n /// @dev Returns the bytes that are hashed 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 safeTxGas Fas that should be used for the safe transaction.\n /// @param baseGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash bytes.\n function encodeTransactionData(\n address to, \n uint256 value, \n bytes memory data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 baseGas, \n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes memory)\n {\n bytes32 safeTxHash = keccak256(\n abi.encode(SAFE_TX_TYPEHASH, to, value, keccak256(data), operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, _nonce)\n );\n return abi.encodePacked(byte(0x19), byte(0x01), domainSeparator, safeTxHash);\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 safeTxGas Fas that should be used for the safe transaction.\n /// @param baseGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Maximum gas price that should be used for this transaction.\n /// @param gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\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 safeTxGas, \n uint256 baseGas, \n uint256 gasPrice,\n address gasToken,\n address refundReceiver,\n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(encodeTransactionData(to, value, data, operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, _nonce));\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "exportedSymbols": { - "GnosisSafe": [ - 773 - ] - }, - "id": 774, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "file": "./base/BaseSafe.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 864, - "src": "24:29:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "./common/MasterCopy.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1840, - "src": "54:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "./common/SignatureDecoder.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1938, - "src": "88:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "./common/SecuredTokenTransfer.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1865, - "src": "128:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "file": "./interfaces/ISignatureValidator.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 2081, - "src": "172:46:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/external/SafeMath.sol", - "file": "./external/SafeMath.sol", - "id": 7, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 2066, - "src": "219:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1839, - "src": "591:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1839", - "typeString": "contract MasterCopy" - } - }, - "id": 9, - "nodeType": "InheritanceSpecifier", - "src": "591:10:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10, - "name": "BaseSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 863, - "src": "603:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$863", - "typeString": "contract BaseSafe" - } - }, - "id": 11, - "nodeType": "InheritanceSpecifier", - "src": "603:8:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1937, - "src": "613:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1937", - "typeString": "contract SignatureDecoder" - } - }, - "id": 13, - "nodeType": "InheritanceSpecifier", - "src": "613:16:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1864, - "src": "631:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 15, - "nodeType": "InheritanceSpecifier", - "src": "631:20:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16, - "name": "ISignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2080, - "src": "653:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$2080", - "typeString": "contract ISignatureValidator" - } - }, - "id": 17, - "nodeType": "InheritanceSpecifier", - "src": "653:19:0" - } - ], - "contractDependencies": [ - 863, - 975, - 1330, - 1796, - 1810, - 1839, - 1864, - 1881, - 1937, - 2080 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 773, - "linearizedBaseContracts": [ - 773, - 2080, - 1864, - 1937, - 863, - 1796, - 1330, - 975, - 1810, - 1839, - 1881 - ], - "name": "GnosisSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 20, - "libraryName": { - "contractScope": null, - "id": 18, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2065, - "src": "686:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2065", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "680:27:0", - "typeName": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "699:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 23, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "713:43:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 21, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "713:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665", - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:13:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", - "typeString": "literal_string \"Gnosis Safe\"" - }, - "value": "Gnosis Safe" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 26, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "762:40:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 24, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "762:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "312e302e30", - "id": 25, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "795:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c", - "typeString": "literal_string \"1.0.0\"" - }, - "value": "1.0.0" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 29, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "887:118:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 27, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "887:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 28, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "939:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", - "typeString": "int_const 1517...(68 digits omitted)...5017" - }, - "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 32, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1215:109:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 30, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1215:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438", - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1258:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1", - "typeString": "int_const 8481...(69 digits omitted)...0904" - }, - "value": "0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 35, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1396:110:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1396:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1440:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", - "typeString": "int_const 4373...(69 digits omitted)...8490" - }, - "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 39, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 39, - "src": "1535:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1535:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1534:16:0" - }, - "src": "1513:38:0" - }, - { - "constant": false, - "id": 41, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1557:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1557:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "domainSeparator", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1583:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 42, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 47, - "name": "signedMessages", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1716:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 46, - "keyType": { - "id": 44, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1724:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1716:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 45, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1735:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "approvedHashes", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1876:69:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 48, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1884:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1876:47:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "valueType": { - "id": 51, - "keyType": { - "id": 49, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1903:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1895:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 50, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1914:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 108, - "nodeType": "Block", - "src": "2676:610:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 72, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2694:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 73, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2713:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2694:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2716:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - }, - "value": "Domain Separator already set!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - } - ], - "id": 71, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2686:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2686:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "2686:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 86, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 78, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2758:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 82, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "2797:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 83, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4406, - "src": "2824:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$773", - "typeString": "contract GnosisSafe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_GnosisSafe_$773", - "typeString": "contract GnosisSafe" - } - ], - "expression": { - "argumentTypes": null, - "id": 80, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2786:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2786:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 84, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2786:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 79, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2776:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2776:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2758:72:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 87, - "nodeType": "ExpressionStatement", - "src": "2758:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 89, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2850:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 90, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2859:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 91, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2871:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 92, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "2875:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 88, - "name": "setupSafe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "2840:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,uint256,address,bytes memory)" - } - }, - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2840:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 94, - "nodeType": "ExpressionStatement", - "src": "2840:40:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 97, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 95, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "2903:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2913:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2903:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 107, - "nodeType": "IfStatement", - "src": "2899:380:0", - "trueBody": { - "id": 106, - "nodeType": "Block", - "src": "2916:363:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 99, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "3223:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3232:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3235:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "id": 102, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "3238:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 103, - "name": "paymentReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "3252:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 98, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "3209:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address payable)" - } - }, - "id": 104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3209:59:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 105, - "nodeType": "ExpressionStatement", - "src": "3209:59:0" - } - ] - } - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid\n @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin)", - "id": 109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2502:26:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2502:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 55, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2502:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2530:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 57, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2530:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2550:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2550:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2562:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 61, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2562:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2583:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 63, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2583:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2605:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2605:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "paymentReceiver", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2622:31:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2622:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2501:153:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "2676:0:0" - }, - "scope": 773, - "src": "2487:799:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "4684:1110:0", - "statements": [ - { - "assignments": [ - 135 - ], - "declarations": [ - { - "constant": false, - "id": 135, - "name": "txHashData", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "4694:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 134, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4694:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 148, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 137, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "4755:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 138, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4759:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 139, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "4766:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 140, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4772:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 141, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "4815:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 142, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "4826:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 143, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "4835:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 144, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "4845:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 145, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4855:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 146, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "4899:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 136, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4720:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4720:194:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4694:220:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4975:7:0", - "subExpression": { - "argumentTypes": null, - "id": 149, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "4975:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 151, - "nodeType": "ExpressionStatement", - "src": "4975:7:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 154, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5018:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 153, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "5008:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5008:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 156, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5031:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 157, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "5043:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5055:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 152, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "4992:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool)" - } - }, - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4992:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 160, - "nodeType": "ExpressionStatement", - "src": "4992:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 162, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5078:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5078:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 164, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5091:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5078:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5102:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 161, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5070:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5070:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 168, - "nodeType": "ExpressionStatement", - "src": "5070:77:0" - }, - { - "assignments": [ - 170 - ], - "declarations": [ - { - "constant": false, - "id": 170, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "5157:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5157:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 173, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 171, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5175:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5175:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5157:27:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 174, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "5301:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 176, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "5319:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 177, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "5323:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 178, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "5330:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 179, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5336:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 180, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5347:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5360:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5347:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5365:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5377:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5365:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5347:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 189, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5393:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5347:55:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 187, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5381:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5381:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 175, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "5311:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5311:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5301:102:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 193, - "nodeType": "ExpressionStatement", - "src": "5301:102:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 194, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5413:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 197, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5435:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5435:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 195, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2020, - "src": "5423:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5423:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5413:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "5413:32:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5459:8:0", - "subExpression": { - "argumentTypes": null, - "id": 202, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 211, - "nodeType": "IfStatement", - "src": "5455:82:0", - "trueBody": { - "id": 210, - "nodeType": "Block", - "src": "5469:68:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 206, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5514:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 205, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "5504:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5504:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 204, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "5488:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5488:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "EmitStatement", - "src": "5483:43:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 212, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5682:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 213, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5693:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5682:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 224, - "nodeType": "IfStatement", - "src": "5678:110:0", - "trueBody": { - "id": 223, - "nodeType": "Block", - "src": "5696:92:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 216, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5724:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 217, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "5733:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 218, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5742:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 219, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "5752:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 220, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "5762:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 215, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "5710:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address payable)" - } - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5710:67:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "5710:67:0" - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails.\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 safeTxGas Gas that should be used for the Safe transaction.\n @param baseGas Gas costs for that are indipendent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 226, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4350:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4370:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4370:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4393:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4393:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4422:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 116, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "4422:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4456:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4456:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 121, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4483:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4483:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4508:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4508:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4534:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4534:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 127, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4560:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4560:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4600:25:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 128, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4600:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4340:291:0" - }, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4666:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4666:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4665:14:0" - }, - "scope": 773, - "src": "4316:1478:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 286, - "nodeType": "Block", - "src": "5991:526:0", - "statements": [ - { - "assignments": [ - 240 - ], - "declarations": [ - { - "constant": false, - "id": 240, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "6001:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 239, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6001:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 248, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 246, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6043:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 243, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "6030:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 241, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6018:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "6018:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6018:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "6018:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6018:34:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6001:51:0" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "6120:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6120:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 260, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 251, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "6147:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6173:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6165:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6165:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6147:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 258, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "6190:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6147:57:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 256, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4378, - "src": "6178:2:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6178:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6120:84:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 261, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6218:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6238:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6230:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6230:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6218:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 284, - "nodeType": "Block", - "src": "6398:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 277, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6434:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 278, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6444:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 279, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6454:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 276, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "6420:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6420:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6463:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 275, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "6412:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6412:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 283, - "nodeType": "ExpressionStatement", - "src": "6412:88:0" - } - ] - }, - "id": 285, - "nodeType": "IfStatement", - "src": "6214:297:0", - "trueBody": { - "id": 274, - "nodeType": "Block", - "src": "6242:150:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6335:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 267, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6321:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6321:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6321:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6344:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "6313:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6313:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 273, - "nodeType": "ExpressionStatement", - "src": "6313:68:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "handlePayment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5832:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5832:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5857:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5857:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5882:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5882:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5908:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5908:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5934:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5934:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5822:148:0" - }, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5991:0:0" - }, - "scope": 773, - "src": "5800:717:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 505, - "nodeType": "Block", - "src": "7198:3618:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 299, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "7283:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7283:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3635", - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7318:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - } - ], - "expression": { - "argumentTypes": null, - "id": 301, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "7304:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "7304:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7304:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7283:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e617475726573206461746120746f6f2073686f7274", - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7323:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", - "typeString": "literal_string \"Signatures data too short\"" - }, - "value": "Signatures data too short" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", - "typeString": "literal_string \"Signatures data too short\"" - } - ], - "id": 298, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "7275:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7275:76:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 308, - "nodeType": "ExpressionStatement", - "src": "7275:76:0" - }, - { - "assignments": [ - 310 - ], - "declarations": [ - { - "constant": false, - "id": 310, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7413:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7413:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 314, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7441:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7433:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7433:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7413:30:0" - }, - { - "assignments": [ - 316 - ], - "declarations": [ - { - "constant": false, - "id": 316, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7453:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 315, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7453:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 317, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7453:20:0" - }, - { - "assignments": [ - 319 - ], - "declarations": [ - { - "constant": false, - "id": 319, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7483:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 318, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7483:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 320, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7483:7:0" - }, - { - "assignments": [ - 322 - ], - "declarations": [ - { - "constant": false, - "id": 322, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7500:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 321, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7500:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 323, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7500:9:0" - }, - { - "assignments": [ - 325 - ], - "declarations": [ - { - "constant": false, - "id": 325, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7519:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 324, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7519:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7519:9:0" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7538:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7538:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 329, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7538:9:0" - }, - { - "body": { - "id": 503, - "nodeType": "Block", - "src": "7589:3221:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 340, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "7604:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 341, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "7607:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 342, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "7610:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 343, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "7603:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "7630:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 346, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7642:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 344, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "7615:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "7603:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "7603:41:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 350, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "7719:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7724:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7719:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 424, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "9768:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9773:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9768:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 477, - "nodeType": "Block", - "src": "10466:149:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 468, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10557:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10582:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 471, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "10592:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 472, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "10595:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 473, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "10598:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 469, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "10572:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10572:28:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10557:43:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "10557:43:0" - } - ] - }, - "id": 478, - "nodeType": "IfStatement", - "src": "9764:851:0", - "trueBody": { - "id": 467, - "nodeType": "Block", - "src": "9776:684:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "9889:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 430, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "9920:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9912:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9912:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9904:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9904:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9889:34:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 434, - "nodeType": "ExpressionStatement", - "src": "9889:34:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 436, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "10094:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10094:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 438, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10108:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10094:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 440, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "10124:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 442, - "indexExpression": { - "argumentTypes": null, - "id": 441, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10139:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10124:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 444, - "indexExpression": { - "argumentTypes": null, - "id": 443, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10153:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10124:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10166:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10124:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10094:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4861736820686173206e6f74206265656e20617070726f766564", - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10169:28:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d7f4b4187d31f59e4128c96e91f8a3de36d0b0c16e067e93136a6935459cd4c4", - "typeString": "literal_string \"Hash has not been approved\"" - }, - "value": "Hash has not been approved" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d7f4b4187d31f59e4128c96e91f8a3de36d0b0c16e067e93136a6935459cd4c4", - "typeString": "literal_string \"Hash has not been approved\"" - } - ], - "id": 435, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10086:112:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 450, - "nodeType": "ExpressionStatement", - "src": "10086:112:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 451, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "10320:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 452, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "10335:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10335:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 454, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10349:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10335:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10320:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 466, - "nodeType": "IfStatement", - "src": "10316:130:0", - "trueBody": { - "id": 465, - "nodeType": "Block", - "src": "10363:83:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 457, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "10385:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 460, - "indexExpression": { - "argumentTypes": null, - "id": 458, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10400:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10385:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 461, - "indexExpression": { - "argumentTypes": null, - "id": 459, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10414:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10385:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10426:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10385:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 464, - "nodeType": "ExpressionStatement", - "src": "10385:42:0" - } - ] - } - } - ] - } - }, - "id": 479, - "nodeType": "IfStatement", - "src": "7715:2900:0", - "trueBody": { - "id": 423, - "nodeType": "Block", - "src": "7727:2031:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 353, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "7844:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 356, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "7875:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7867:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7867:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7859:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7859:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7844:34:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "7844:34:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 363, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8273:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8265:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8265:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3635", - "id": 367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8293:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "8279:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "8279:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8279:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8265:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a20696e73696465207374617469632070617274", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bfb239616a9951d5fab065a9a51a4efbfefb4123cc2bd6ca3a42ba9495d0b860", - "typeString": "literal_string \"Invalid contract signature location: inside static part\"" - }, - "value": "Invalid contract signature location: inside static part" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bfb239616a9951d5fab065a9a51a4efbfefb4123cc2bd6ca3a42ba9495d0b860", - "typeString": "literal_string \"Invalid contract signature location: inside static part\"" - } - ], - "id": 361, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8257:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8257:99:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "8257:99:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8511:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 375, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8504:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8496:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8496:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8496:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "8518:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8518:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8496:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a206c656e677468206e6f742070726573656e74", - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8537:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc0d1c56ccf75f8c8c8a674b5193ee8ed08d0760e044e48d340712e3fcc404fc", - "typeString": "literal_string \"Invalid contract signature location: length not present\"" - }, - "value": "Invalid contract signature location: length not present" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dc0d1c56ccf75f8c8c8a674b5193ee8ed08d0760e044e48d340712e3fcc404fc", - "typeString": "literal_string \"Invalid contract signature location: length not present\"" - } - ], - "id": 373, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8488:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8488:107:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 385, - "nodeType": "ExpressionStatement", - "src": "8488:107:0" - }, - { - "assignments": [ - 387 - ], - "declarations": [ - { - "constant": false, - "id": 387, - "name": "contractSignatureLen", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "8739:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 386, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8739:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 388, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8739:28:0" - }, - { - "externalReferences": [ - { - "contractSignatureLen": { - "declaration": 387, - "isOffset": false, - "isSlot": false, - "src": "8888:20:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 293, - "isOffset": false, - "isSlot": false, - "src": "8926:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 325, - "isOffset": false, - "isSlot": false, - "src": "8938:1:0", - "valueSize": 1 - } - } - ], - "id": 389, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignatureLen := mload(add(add(signatures, s), 0x20))\n}", - "src": "8857:133:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 398, - "name": "contractSignatureLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "9014:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9006:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 392, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8999:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8991:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8991:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8991:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 400, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "9039:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9039:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8991:65:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a2064617461206e6f7420636f6d706c657465", - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9058:56:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac9b3d17bcf94bcca27fad9236a2ce28cd2180227f36ea63832457691c24a721", - "typeString": "literal_string \"Invalid contract signature location: data not complete\"" - }, - "value": "Invalid contract signature location: data not complete" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac9b3d17bcf94bcca27fad9236a2ce28cd2180227f36ea63832457691c24a721", - "typeString": "literal_string \"Invalid contract signature location: data not complete\"" - } - ], - "id": 390, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8983:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8983:132:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 405, - "nodeType": "ExpressionStatement", - "src": "8983:132:0" - }, - { - "assignments": [ - 407 - ], - "declarations": [ - { - "constant": false, - "id": 407, - "name": "contractSignature", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "9169:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 406, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9169:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 408, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9169:30:0" - }, - { - "externalReferences": [ - { - "contractSignature": { - "declaration": 407, - "isOffset": false, - "isSlot": false, - "src": "9459:17:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 293, - "isOffset": false, - "isSlot": false, - "src": "9488:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 325, - "isOffset": false, - "isSlot": false, - "src": "9500:1:0", - "valueSize": 1 - } - } - ], - "id": 409, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "9289:262:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 415, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "9603:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 416, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "9609:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 412, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "9572:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 411, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "9552:19:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$2080_$", - "typeString": "type(contract ISignatureValidator)" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9552:33:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$2080", - "typeString": "contract ISignatureValidator" - } - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 2079, - "src": "9552:50:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory,bytes memory) external returns (bytes4)" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9552:75:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 418, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "9631:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9552:98:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e61747572652070726f7669646564", - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9652:37:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_390c7641d6d34f7efe51534140db10473a63d1356be81e211b820ef38d63c7ad", - "typeString": "literal_string \"Invalid contract signature provided\"" - }, - "value": "Invalid contract signature provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_390c7641d6d34f7efe51534140db10473a63d1356be81e211b820ef38d63c7ad", - "typeString": "literal_string \"Invalid contract signature provided\"" - } - ], - "id": 410, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "9544:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9544:146:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "9544:146:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 481, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10637:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 482, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "10652:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10637:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 484, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "10665:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 486, - "indexExpression": { - "argumentTypes": null, - "id": 485, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10672:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10665:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10697:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10689:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10689:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10665:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10637:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 492, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10703:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 493, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "10719:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10703:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10637:97:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e65722070726f7669646564", - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10736:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ee2555cd581859d0f0126c1bf87e0d45ed61a2e38322e0cb3c328581d2d4b32", - "typeString": "literal_string \"Invalid owner provided\"" - }, - "value": "Invalid owner provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ee2555cd581859d0f0126c1bf87e0d45ed61a2e38322e0cb3c328581d2d4b32", - "typeString": "literal_string \"Invalid owner provided\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "10628:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10628:133:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 498, - "nodeType": "ExpressionStatement", - "src": "10628:133:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 499, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "10775:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 500, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10787:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10775:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 502, - "nodeType": "ExpressionStatement", - "src": "10775:24:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 334, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7569:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 335, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "7573:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7569:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 504, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 330, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7562:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7566:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7562:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "7562:5:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7584:3:0", - "subExpression": { - "argumentTypes": null, - "id": 337, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7584:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 339, - "nodeType": "ExpressionStatement", - "src": "7584:3:0" - }, - "nodeType": "ForStatement", - "src": "7557:3253:0" - } - ] - }, - "documentation": "@dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas", - "id": 506, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkSignatures", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 289, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7097:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 288, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7097:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 291, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7115:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 290, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7115:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7134:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 292, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7134:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "name": "consumeHash", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7159:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 294, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7159:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7096:80:0" - }, - "returnParameters": { - "id": 297, - "nodeType": "ParameterList", - "parameters": [], - "src": "7198:0:0" - }, - "scope": 773, - "src": "7072:3744:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 553, - "nodeType": "Block", - "src": "11890:420:0", - "statements": [ - { - "assignments": [ - 522 - ], - "declarations": [ - { - "constant": false, - "id": 522, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 553, - "src": "11900:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 525, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 523, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "11919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11919:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11900:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 528, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "12090:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 529, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "12094:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 530, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "12101:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 531, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "12107:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 532, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "12118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12118:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 527, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "12082:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12082:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 526, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "12074:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12074:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 536, - "nodeType": "ExpressionStatement", - "src": "12074:55:0" - }, - { - "assignments": [ - 538 - ], - "declarations": [ - { - "constant": false, - "id": 538, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 553, - "src": "12139:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12139:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 543, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "12161:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 540, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "12172:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12172:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12161:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12139:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 548, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "12289:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 546, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12272:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12272:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12272:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12265:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12265:37:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 544, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12258:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "12258:45:0" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction.\n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\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 @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 554, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 517, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "11849:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11849:10:0" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 508, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11750:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11750:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11762:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11762:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11777:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 511, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11777:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11798:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 513, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "11798:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11749:74:0" - }, - "returnParameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11877:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11877:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11876:9:0" - }, - "scope": 773, - "src": "11727:583:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 580, - "nodeType": "Block", - "src": "12619:147:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 560, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "12637:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 561, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12644:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12644:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12637:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12667:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12659:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12637:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12671:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - }, - "value": "Only owners can approve a hash" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - } - ], - "id": 559, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "12629:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12629:75:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 570, - "nodeType": "ExpressionStatement", - "src": "12629:75:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 571, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12714:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 575, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 572, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12729:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12729:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12714:26:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 576, - "indexExpression": { - "argumentTypes": null, - "id": 574, - "name": "hashToApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "12741:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12714:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12758:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12714:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "12714:45:0" - } - ] - }, - "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", - "id": 581, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approveHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 556, - "name": "hashToApprove", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "12575:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 555, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12575:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12574:23:0" - }, - "returnParameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [], - "src": "12619:0:0" - }, - "scope": 773, - "src": "12554:212:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 596, - "nodeType": "Block", - "src": "13013:58:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 588, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "13023:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 592, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 590, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 583, - "src": "13053:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 589, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "13038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13038:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13023:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13063:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13023:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 595, - "nodeType": "ExpressionStatement", - "src": "13023:41:0" - } - ] - }, - "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", - "id": 597, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 586, - "modifierName": { - "argumentTypes": null, - "id": 585, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "12998:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12998:10:0" - } - ], - "name": "signMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "12950:20:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 582, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12950:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12949:22:0" - }, - "returnParameters": { - "id": 587, - "nodeType": "ParameterList", - "parameters": [], - "src": "13013:0:0" - }, - "scope": 773, - "src": "12929:142:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 637, - "nodeType": "Block", - "src": "13525:386:0", - "statements": [ - { - "assignments": [ - 607 - ], - "declarations": [ - { - "constant": false, - "id": 607, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 637, - "src": "13535:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 606, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13535:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 611, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 609, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13572:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 608, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "13557:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13557:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13535:43:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 612, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13592:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13592:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13613:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13592:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 633, - "nodeType": "Block", - "src": "13709:160:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 627, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13820:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 628, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13833:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 629, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13840:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13852:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 626, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "13804:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool)" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13804:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "13804:54:0" - } - ] - }, - "id": 634, - "nodeType": "IfStatement", - "src": "13588:281:0", - "trueBody": { - "id": 625, - "nodeType": "Block", - "src": "13616:87:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 617, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "13638:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 619, - "indexExpression": { - "argumentTypes": null, - "id": 618, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13653:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13638:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13669:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13638:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "48617368206e6f7420617070726f766564", - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13672:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fd8211c71ab965565e8a56b84284a02d17d4d89e6f05f14b26449d5de3a8c5b6", - "typeString": "literal_string \"Hash not approved\"" - }, - "value": "Hash not approved" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fd8211c71ab965565e8a56b84284a02d17d4d89e6f05f14b26449d5de3a8c5b6", - "typeString": "literal_string \"Hash not approved\"" - } - ], - "id": 616, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "13630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13630:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 624, - "nodeType": "ExpressionStatement", - "src": "13630:62:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 635, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "13885:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 605, - "id": 636, - "nodeType": "Return", - "src": "13878:26:0" - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 638, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 599, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13430:20:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 598, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 601, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13452:25:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 600, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13452:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13429:49:0" - }, - "returnParameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13513:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 603, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13513:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13512:8:0" - }, - "scope": 773, - "src": "13404:507:0", - "stateMutability": "nonpayable", - "superFunction": 2079, - "visibility": "external" - }, - { - "body": { - "id": 671, - "nodeType": "Block", - "src": "14187:249:0", - "statements": [ - { - "assignments": [ - 646 - ], - "declarations": [ - { - "constant": false, - "id": 646, - "name": "safeMessageHash", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "14197:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 645, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14197:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 656, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14257:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "14286:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 651, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14276:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14276:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 648, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "14246:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14246:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14246:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 647, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14223:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14223:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14197:108:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14367:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14362:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14362:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783031", - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14379:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14374:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14374:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 666, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "14386:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 667, - "name": "safeMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 646, - "src": "14403:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 658, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "14345:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14345:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14345:74:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 657, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14322:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14322:107:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 644, - "id": 670, - "nodeType": "Return", - "src": "14315:114:0" - } - ] - }, - "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", - "id": 672, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMessageHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 640, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "14102:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 639, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14102:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14092:36:0" - }, - "returnParameters": { - "id": 644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "14174:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 642, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14174:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14173:9:0" - }, - "scope": 773, - "src": "14069:367:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 730, - "nodeType": "Block", - "src": "15519:288:0", - "statements": [ - { - "assignments": [ - 698 - ], - "declarations": [ - { - "constant": false, - "id": 698, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 730, - "src": "15529:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 697, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15529:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 717, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 702, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "15584:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 703, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "15602:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 704, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "15606:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "15623:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 705, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "15613:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15613:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 708, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 680, - "src": "15630:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 709, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 682, - "src": "15641:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 710, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15652:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 711, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "15661:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 712, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "15671:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 713, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "15681:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 714, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "15697:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 700, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "15573:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15573:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15573:131:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 699, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "15550:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:164:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15529:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15753:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15748:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15748:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783031", - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15765:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15760:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15760:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 726, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15772:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 727, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "15789:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 718, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "15731:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15731:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15731:69:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 696, - "id": 729, - "nodeType": "Return", - "src": "15724:76:0" - } - ] - }, - "documentation": "@dev Returns the bytes that are hashed 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 safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", - "id": 731, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encodeTransactionData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15189:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15189:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15210:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15210:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 678, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15234:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 677, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15234:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 680, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15262:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 679, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "15262:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 682, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15297:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 681, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 684, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15325:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15325:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 686, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15351:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 685, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15351:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15377:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15377:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 690, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15403:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15403:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 692, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15435:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15435:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15179:276:0" - }, - "returnParameters": { - "id": 696, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 695, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15501:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 694, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15501:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15500:14:0" - }, - "scope": 773, - "src": "15149:658:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 771, - "nodeType": "Block", - "src": "16855:148:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 758, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 733, - "src": "16904:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 759, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "16908:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 760, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "16915:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 761, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "16921:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 762, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "16932:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "16943:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "16952:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 765, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "16962:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 766, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "16972:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 767, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "16988:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 757, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16882:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16882:113:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 756, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "16872:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16872:124:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 755, - "id": 770, - "nodeType": "Return", - "src": "16865:131:0" - } - ] - }, - "documentation": "@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 safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 772, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 733, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16530:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16530:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 735, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16551:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16551:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 737, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16575:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 736, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16575:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 739, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16603:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 738, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "16603:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 741, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16638:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16638:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 743, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16666:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16666:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 745, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16692:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 744, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16718:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 746, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16718:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 749, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16744:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 748, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16744:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 751, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16776:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 750, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16776:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16520:276:0" - }, - "returnParameters": { - "id": 755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 754, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16842:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 753, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16842:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16841:9:0" - }, - "scope": 773, - "src": "16493:510:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 774, - "src": "568:16437:0" - } - ], - "src": "0:17006:0" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "exportedSymbols": { - "GnosisSafe": [ - 773 - ] - }, - "id": 774, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol", - "file": "./base/BaseSafe.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 864, - "src": "24:29:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "./common/MasterCopy.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1840, - "src": "54:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "./common/SignatureDecoder.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1938, - "src": "88:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "./common/SecuredTokenTransfer.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 1865, - "src": "128:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "file": "./interfaces/ISignatureValidator.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 2081, - "src": "172:46:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/external/SafeMath.sol", - "file": "./external/SafeMath.sol", - "id": 7, - "nodeType": "ImportDirective", - "scope": 774, - "sourceUnit": 2066, - "src": "219:33:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1839, - "src": "591:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1839", - "typeString": "contract MasterCopy" - } - }, - "id": 9, - "nodeType": "InheritanceSpecifier", - "src": "591:10:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10, - "name": "BaseSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 863, - "src": "603:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BaseSafe_$863", - "typeString": "contract BaseSafe" - } - }, - "id": 11, - "nodeType": "InheritanceSpecifier", - "src": "603:8:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1937, - "src": "613:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1937", - "typeString": "contract SignatureDecoder" - } - }, - "id": 13, - "nodeType": "InheritanceSpecifier", - "src": "613:16:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1864, - "src": "631:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 15, - "nodeType": "InheritanceSpecifier", - "src": "631:20:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 16, - "name": "ISignatureValidator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2080, - "src": "653:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$2080", - "typeString": "contract ISignatureValidator" - } - }, - "id": 17, - "nodeType": "InheritanceSpecifier", - "src": "653:19:0" - } - ], - "contractDependencies": [ - 863, - 975, - 1330, - 1796, - 1810, - 1839, - 1864, - 1881, - 1937, - 2080 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", - "fullyImplemented": true, - "id": 773, - "linearizedBaseContracts": [ - 773, - 2080, - 1864, - 1937, - 863, - 1796, - 1330, - 975, - 1810, - 1839, - 1881 - ], - "name": "GnosisSafe", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 20, - "libraryName": { - "contractScope": null, - "id": 18, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2065, - "src": "686:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$2065", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "680:27:0", - "typeName": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "699:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 23, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "713:43:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 21, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "713:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665", - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:13:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_72ec6775392f699e8ffd72b7c600556d49bdc746bf22bce93d3ae6019cdaff63", - "typeString": "literal_string \"Gnosis Safe\"" - }, - "value": "Gnosis Safe" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 26, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "762:40:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 24, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "762:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "312e302e30", - "id": 25, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "795:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c", - "typeString": "literal_string \"1.0.0\"" - }, - "value": "1.0.0" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 29, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "887:118:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 27, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "887:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439", - "id": 28, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "939:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1", - "typeString": "int_const 1517...(68 digits omitted)...5017" - }, - "value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 32, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1215:109:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 30, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1215:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307862623833313064343836333638646236626436663834393430326664643733616435336433313662356134623236343461643665666530663934313238366438", - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1258:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_84814075808141314178395468817534025465894426928601295766380145544921651250904_by_1", - "typeString": "int_const 8481...(69 digits omitted)...0904" - }, - "value": "0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 35, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1396:110:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1396:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307836306233636266386234613232336436386436343162336236646466396132393865376633333731306366336433613964313134366235613631353066626361", - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1440:66:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_43739706848186989041152069077571617734008543096732098246335109361212071148490_by_1", - "typeString": "int_const 4373...(69 digits omitted)...8490" - }, - "value": "0x60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 39, - "name": "ExecutionFailed", - "nodeType": "EventDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "indexed": false, - "name": "txHash", - "nodeType": "VariableDeclaration", - "scope": 39, - "src": "1535:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 36, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1535:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1534:16:0" - }, - "src": "1513:38:0" - }, - { - "constant": false, - "id": 41, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1557:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1557:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "domainSeparator", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1583:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 42, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 47, - "name": "signedMessages", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1716:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 46, - "keyType": { - "id": 44, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1724:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1716:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 45, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1735:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "approvedHashes", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "1876:69:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 48, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1884:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1876:47:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - }, - "valueType": { - "id": 51, - "keyType": { - "id": 49, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1903:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1895:27:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 50, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1914:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 108, - "nodeType": "Block", - "src": "2676:610:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 74, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 72, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2694:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 73, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2713:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2694:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "446f6d61696e20536570617261746f7220616c72656164792073657421", - "id": 75, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2716:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - }, - "value": "Domain Separator already set!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a2e1f2db9cd32eaa6a2caa3d6caa726a30dc0417d866440bfe13d6a6d030e5e2", - "typeString": "literal_string \"Domain Separator already set!\"" - } - ], - "id": 71, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2686:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2686:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "2686:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 86, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 78, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "2758:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 82, - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "2797:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 83, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4406, - "src": "2824:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$773", - "typeString": "contract GnosisSafe" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_contract$_GnosisSafe_$773", - "typeString": "contract GnosisSafe" - } - ], - "expression": { - "argumentTypes": null, - "id": 80, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2786:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2786:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 84, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2786:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 79, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2776:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2776:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2758:72:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 87, - "nodeType": "ExpressionStatement", - "src": "2758:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 89, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "2850:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - { - "argumentTypes": null, - "id": 90, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "2859:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 91, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2871:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 92, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "2875:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 88, - "name": "setupSafe", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "2840:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address[] memory,uint256,address,bytes memory)" - } - }, - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2840:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 94, - "nodeType": "ExpressionStatement", - "src": "2840:40:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 97, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 95, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "2903:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 96, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2913:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2903:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 107, - "nodeType": "IfStatement", - "src": "2899:380:0", - "trueBody": { - "id": 106, - "nodeType": "Block", - "src": "2916:363:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 99, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 66, - "src": "3223:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3232:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3235:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "id": 102, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "3238:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 103, - "name": "paymentReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "3252:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 98, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "3209:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address payable)" - } - }, - "id": 104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3209:59:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 105, - "nodeType": "ExpressionStatement", - "src": "3209:59:0" - } - ] - } - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid\n @param paymentReceiver Adddress that should receive the payment (or 0 if tx.origin)", - "id": 109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 69, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2502:26:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2502:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 55, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2502:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2530:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 57, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2530:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2550:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2550:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2562:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 61, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2562:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2583:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 63, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2583:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2605:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2605:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "paymentReceiver", - "nodeType": "VariableDeclaration", - "scope": 109, - "src": "2622:31:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2622:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2501:153:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [], - "src": "2676:0:0" - }, - "scope": 773, - "src": "2487:799:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "4684:1110:0", - "statements": [ - { - "assignments": [ - 135 - ], - "declarations": [ - { - "constant": false, - "id": 135, - "name": "txHashData", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "4694:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 134, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4694:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 148, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 137, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "4755:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 138, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4759:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 139, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "4766:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 140, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4772:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 141, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "4815:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 142, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "4826:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 143, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "4835:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 144, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "4845:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 145, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4855:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 146, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "4899:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 136, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4720:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4720:194:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4694:220:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4975:7:0", - "subExpression": { - "argumentTypes": null, - "id": 149, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "4975:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 151, - "nodeType": "ExpressionStatement", - "src": "4975:7:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 154, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5018:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 153, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "5008:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5008:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 156, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5031:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 157, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "5043:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5055:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 152, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "4992:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool)" - } - }, - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4992:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 160, - "nodeType": "ExpressionStatement", - "src": "4992:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 162, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5078:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5078:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 164, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5091:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5078:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5102:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - }, - "value": "Not enough gas to execute safe transaction" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", - "typeString": "literal_string \"Not enough gas to execute safe transaction\"" - } - ], - "id": 161, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5070:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5070:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 168, - "nodeType": "ExpressionStatement", - "src": "5070:77:0" - }, - { - "assignments": [ - 170 - ], - "declarations": [ - { - "constant": false, - "id": 170, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 225, - "src": "5157:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5157:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 173, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 171, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5175:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5175:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5157:27:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 174, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "5301:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 176, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "5319:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 177, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "5323:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 178, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "5330:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 179, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5336:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 180, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5347:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5360:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5347:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5365:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5377:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5365:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5347:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 189, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5393:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5347:55:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 187, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5381:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5381:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 175, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "5311:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5311:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5301:102:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 193, - "nodeType": "ExpressionStatement", - "src": "5301:102:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 194, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5413:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 197, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "5435:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5435:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 195, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2020, - "src": "5423:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5423:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5413:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "5413:32:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5459:8:0", - "subExpression": { - "argumentTypes": null, - "id": 202, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 211, - "nodeType": "IfStatement", - "src": "5455:82:0", - "trueBody": { - "id": 210, - "nodeType": "Block", - "src": "5469:68:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 206, - "name": "txHashData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "5514:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 205, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "5504:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5504:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 204, - "name": "ExecutionFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "5488:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5488:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "EmitStatement", - "src": "5483:43:0" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 212, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5682:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 213, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5693:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5682:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 224, - "nodeType": "IfStatement", - "src": "5678:110:0", - "trueBody": { - "id": 223, - "nodeType": "Block", - "src": "5696:92:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 216, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "5724:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 217, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "5733:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 218, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "5742:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 219, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "5752:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 220, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "5762:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 215, - "name": "handlePayment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "5710:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_payable_$returns$__$", - "typeString": "function (uint256,uint256,uint256,address,address payable)" - } - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5710:67:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "5710:67:0" - } - ] - } - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails.\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 safeTxGas Gas that should be used for the Safe transaction.\n @param baseGas Gas costs for that are indipendent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)\n @param gasPrice Gas price that should be used for the payment calculation.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 226, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 111, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4350:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4370:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4370:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4393:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4393:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4422:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 116, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "4422:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4456:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4456:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 121, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4483:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4483:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4508:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4508:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4534:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4534:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 127, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4560:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4560:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4600:25:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 128, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4600:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4340:291:0" - }, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "4666:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4666:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4665:14:0" - }, - "scope": 773, - "src": "4316:1478:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 286, - "nodeType": "Block", - "src": "5991:526:0", - "statements": [ - { - "assignments": [ - 240 - ], - "declarations": [ - { - "constant": false, - "id": 240, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "6001:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 239, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6001:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 248, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 246, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6043:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 243, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "6030:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 241, - "name": "gasUsed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6018:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "6018:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6018:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "6018:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6018:34:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6001:51:0" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "6120:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6120:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 260, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 251, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "6147:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6173:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6165:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6165:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6147:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 258, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "6190:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6147:57:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 256, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4378, - "src": "6178:2:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6178:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6120:84:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 261, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6218:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6238:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6230:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6230:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6218:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 284, - "nodeType": "Block", - "src": "6398:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 277, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6434:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 278, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6444:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 279, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6454:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 276, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "6420:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6420:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6463:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - }, - "value": "Could not pay gas costs with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", - "typeString": "literal_string \"Could not pay gas costs with token\"" - } - ], - "id": 275, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "6412:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6412:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 283, - "nodeType": "ExpressionStatement", - "src": "6412:88:0" - } - ] - }, - "id": 285, - "nodeType": "IfStatement", - "src": "6214:297:0", - "trueBody": { - "id": 274, - "nodeType": "Block", - "src": "6242:150:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "6335:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 267, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "6321:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6321:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6321:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6344:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - }, - "value": "Could not pay gas costs with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", - "typeString": "literal_string \"Could not pay gas costs with ether\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "6313:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6313:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 273, - "nodeType": "ExpressionStatement", - "src": "6313:68:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "handlePayment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "gasUsed", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5832:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5832:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5857:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5857:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5882:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5882:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5908:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5908:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "5934:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5934:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5822:148:0" - }, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "5991:0:0" - }, - "scope": 773, - "src": "5800:717:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 505, - "nodeType": "Block", - "src": "7198:3618:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 299, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "7283:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7283:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3635", - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7318:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - } - ], - "expression": { - "argumentTypes": null, - "id": 301, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "7304:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "7304:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7304:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7283:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e617475726573206461746120746f6f2073686f7274", - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7323:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", - "typeString": "literal_string \"Signatures data too short\"" - }, - "value": "Signatures data too short" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_17122174e7c2d723217ce151aacf64aec6d32748978cfd1a9479e00b57ac7dd5", - "typeString": "literal_string \"Signatures data too short\"" - } - ], - "id": 298, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "7275:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7275:76:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 308, - "nodeType": "ExpressionStatement", - "src": "7275:76:0" - }, - { - "assignments": [ - 310 - ], - "declarations": [ - { - "constant": false, - "id": 310, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7413:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7413:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 314, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7441:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7433:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7433:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7413:30:0" - }, - { - "assignments": [ - 316 - ], - "declarations": [ - { - "constant": false, - "id": 316, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7453:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 315, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7453:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 317, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7453:20:0" - }, - { - "assignments": [ - 319 - ], - "declarations": [ - { - "constant": false, - "id": 319, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7483:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 318, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7483:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 320, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7483:7:0" - }, - { - "assignments": [ - 322 - ], - "declarations": [ - { - "constant": false, - "id": 322, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7500:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 321, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7500:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 323, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7500:9:0" - }, - { - "assignments": [ - 325 - ], - "declarations": [ - { - "constant": false, - "id": 325, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7519:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 324, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7519:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 326, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7519:9:0" - }, - { - "assignments": [ - 328 - ], - "declarations": [ - { - "constant": false, - "id": 328, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 505, - "src": "7538:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7538:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 329, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "7538:9:0" - }, - { - "body": { - "id": 503, - "nodeType": "Block", - "src": "7589:3221:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 340, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "7604:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 341, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "7607:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 342, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "7610:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 343, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "7603:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 345, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "7630:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 346, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7642:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 344, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "7615:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "7603:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 349, - "nodeType": "ExpressionStatement", - "src": "7603:41:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 350, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "7719:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7724:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7719:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 424, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "9768:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9773:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9768:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 477, - "nodeType": "Block", - "src": "10466:149:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 468, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10557:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10582:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 471, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "10592:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 472, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "10595:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 473, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "10598:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 469, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "10572:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10572:28:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10557:43:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "10557:43:0" - } - ] - }, - "id": 478, - "nodeType": "IfStatement", - "src": "9764:851:0", - "trueBody": { - "id": 467, - "nodeType": "Block", - "src": "9776:684:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "9889:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 430, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "9920:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9912:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9912:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9904:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9904:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9889:34:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 434, - "nodeType": "ExpressionStatement", - "src": "9889:34:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 436, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "10094:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10094:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 438, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10108:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10094:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 440, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "10124:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 442, - "indexExpression": { - "argumentTypes": null, - "id": 441, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10139:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10124:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 444, - "indexExpression": { - "argumentTypes": null, - "id": 443, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10153:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10124:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10166:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10124:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10094:73:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4861736820686173206e6f74206265656e20617070726f766564", - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10169:28:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d7f4b4187d31f59e4128c96e91f8a3de36d0b0c16e067e93136a6935459cd4c4", - "typeString": "literal_string \"Hash has not been approved\"" - }, - "value": "Hash has not been approved" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d7f4b4187d31f59e4128c96e91f8a3de36d0b0c16e067e93136a6935459cd4c4", - "typeString": "literal_string \"Hash has not been approved\"" - } - ], - "id": 435, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10086:112:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 450, - "nodeType": "ExpressionStatement", - "src": "10086:112:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 451, - "name": "consumeHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "10320:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 452, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "10335:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10335:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 454, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10349:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10335:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10320:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 466, - "nodeType": "IfStatement", - "src": "10316:130:0", - "trueBody": { - "id": 465, - "nodeType": "Block", - "src": "10363:83:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 457, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "10385:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 460, - "indexExpression": { - "argumentTypes": null, - "id": 458, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10400:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10385:28:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 461, - "indexExpression": { - "argumentTypes": null, - "id": 459, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "10414:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10385:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10426:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10385:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 464, - "nodeType": "ExpressionStatement", - "src": "10385:42:0" - } - ] - } - } - ] - } - }, - "id": 479, - "nodeType": "IfStatement", - "src": "7715:2900:0", - "trueBody": { - "id": 423, - "nodeType": "Block", - "src": "7727:2031:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 353, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "7844:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 356, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "7875:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7867:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7867:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7859:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7859:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7844:34:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "7844:34:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 363, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8273:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8265:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8265:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3635", - "id": 367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8293:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - } - ], - "expression": { - "argumentTypes": null, - "id": 365, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "8279:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "8279:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8279:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8265:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a20696e73696465207374617469632070617274", - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8298:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bfb239616a9951d5fab065a9a51a4efbfefb4123cc2bd6ca3a42ba9495d0b860", - "typeString": "literal_string \"Invalid contract signature location: inside static part\"" - }, - "value": "Invalid contract signature location: inside static part" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bfb239616a9951d5fab065a9a51a4efbfefb4123cc2bd6ca3a42ba9495d0b860", - "typeString": "literal_string \"Invalid contract signature location: inside static part\"" - } - ], - "id": 361, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8257:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8257:99:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 372, - "nodeType": "ExpressionStatement", - "src": "8257:99:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8511:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 375, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8504:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8496:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8496:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8496:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8496:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 380, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "8518:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8518:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8496:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a206c656e677468206e6f742070726573656e74", - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8537:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc0d1c56ccf75f8c8c8a674b5193ee8ed08d0760e044e48d340712e3fcc404fc", - "typeString": "literal_string \"Invalid contract signature location: length not present\"" - }, - "value": "Invalid contract signature location: length not present" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dc0d1c56ccf75f8c8c8a674b5193ee8ed08d0760e044e48d340712e3fcc404fc", - "typeString": "literal_string \"Invalid contract signature location: length not present\"" - } - ], - "id": 373, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8488:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8488:107:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 385, - "nodeType": "ExpressionStatement", - "src": "8488:107:0" - }, - { - "assignments": [ - 387 - ], - "declarations": [ - { - "constant": false, - "id": 387, - "name": "contractSignatureLen", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "8739:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 386, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8739:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 388, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8739:28:0" - }, - { - "externalReferences": [ - { - "contractSignatureLen": { - "declaration": 387, - "isOffset": false, - "isSlot": false, - "src": "8888:20:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 293, - "isOffset": false, - "isSlot": false, - "src": "8926:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 325, - "isOffset": false, - "isSlot": false, - "src": "8938:1:0", - "valueSize": 1 - } - } - ], - "id": 389, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignatureLen := mload(add(add(signatures, s), 0x20))\n}", - "src": "8857:133:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 398, - "name": "contractSignatureLen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "9014:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9006:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 392, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 325, - "src": "8999:1:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8991:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8991:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2044, - "src": "8991:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8991:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 400, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "9039:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9039:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8991:65:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e6174757265206c6f636174696f6e3a2064617461206e6f7420636f6d706c657465", - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9058:56:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac9b3d17bcf94bcca27fad9236a2ce28cd2180227f36ea63832457691c24a721", - "typeString": "literal_string \"Invalid contract signature location: data not complete\"" - }, - "value": "Invalid contract signature location: data not complete" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac9b3d17bcf94bcca27fad9236a2ce28cd2180227f36ea63832457691c24a721", - "typeString": "literal_string \"Invalid contract signature location: data not complete\"" - } - ], - "id": 390, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "8983:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8983:132:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 405, - "nodeType": "ExpressionStatement", - "src": "8983:132:0" - }, - { - "assignments": [ - 407 - ], - "declarations": [ - { - "constant": false, - "id": 407, - "name": "contractSignature", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "9169:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 406, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9169:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 408, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9169:30:0" - }, - { - "externalReferences": [ - { - "contractSignature": { - "declaration": 407, - "isOffset": false, - "isSlot": false, - "src": "9459:17:0", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 293, - "isOffset": false, - "isSlot": false, - "src": "9488:10:0", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 325, - "isOffset": false, - "isSlot": false, - "src": "9500:1:0", - "valueSize": 1 - } - } - ], - "id": 409, - "nodeType": "InlineAssembly", - "operations": "{\n contractSignature := add(add(signatures, s), 0x20)\n}", - "src": "9289:262:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 415, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "9603:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 416, - "name": "contractSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "9609:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 412, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "9572:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 411, - "name": "ISignatureValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "9552:19:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISignatureValidator_$2080_$", - "typeString": "type(contract ISignatureValidator)" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9552:33:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISignatureValidator_$2080", - "typeString": "contract ISignatureValidator" - } - }, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isValidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 2079, - "src": "9552:50:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory,bytes memory) external returns (bytes4)" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9552:75:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 418, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "9631:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "9552:98:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420636f6e7472616374207369676e61747572652070726f7669646564", - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9652:37:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_390c7641d6d34f7efe51534140db10473a63d1356be81e211b820ef38d63c7ad", - "typeString": "literal_string \"Invalid contract signature provided\"" - }, - "value": "Invalid contract signature provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_390c7641d6d34f7efe51534140db10473a63d1356be81e211b820ef38d63c7ad", - "typeString": "literal_string \"Invalid contract signature provided\"" - } - ], - "id": 410, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "9544:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9544:146:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "9544:146:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 481, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10637:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 482, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "10652:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10637:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 484, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "10665:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 486, - "indexExpression": { - "argumentTypes": null, - "id": 485, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10672:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10665:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10697:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10689:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10689:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10665:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10637:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 492, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10703:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 493, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "10719:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10703:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10637:97:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e65722070726f7669646564", - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10736:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ee2555cd581859d0f0126c1bf87e0d45ed61a2e38322e0cb3c328581d2d4b32", - "typeString": "literal_string \"Invalid owner provided\"" - }, - "value": "Invalid owner provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ee2555cd581859d0f0126c1bf87e0d45ed61a2e38322e0cb3c328581d2d4b32", - "typeString": "literal_string \"Invalid owner provided\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "10628:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10628:133:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 498, - "nodeType": "ExpressionStatement", - "src": "10628:133:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 499, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "10775:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 500, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "10787:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10775:24:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 502, - "nodeType": "ExpressionStatement", - "src": "10775:24:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 334, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7569:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 335, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "7573:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7569:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 504, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 330, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7562:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7566:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7562:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "7562:5:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7584:3:0", - "subExpression": { - "argumentTypes": null, - "id": 337, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "7584:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 339, - "nodeType": "ExpressionStatement", - "src": "7584:3:0" - }, - "nodeType": "ForStatement", - "src": "7557:3253:0" - } - ] - }, - "documentation": "@dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.\n@param dataHash Hash of the data (could be either a message hash or transaction hash)\n@param data That should be signed (this is passed to an external validator contract)\n@param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.\n@param consumeHash Indicates that in case of an approved hash the storage can be freed to save gas", - "id": 506, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkSignatures", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 289, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7097:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 288, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7097:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 291, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7115:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 290, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7115:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7134:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 292, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7134:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "name": "consumeHash", - "nodeType": "VariableDeclaration", - "scope": 506, - "src": "7159:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 294, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7159:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7096:80:0" - }, - "returnParameters": { - "id": 297, - "nodeType": "ParameterList", - "parameters": [], - "src": "7198:0:0" - }, - "scope": 773, - "src": "7072:3744:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 553, - "nodeType": "Block", - "src": "11890:420:0", - "statements": [ - { - "assignments": [ - 522 - ], - "declarations": [ - { - "constant": false, - "id": 522, - "name": "startGas", - "nodeType": "VariableDeclaration", - "scope": 553, - "src": "11900:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11900:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 525, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 523, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "11919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11919:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11900:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 528, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "12090:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 529, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "12094:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 530, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "12101:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 531, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "12107:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 532, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "12118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12118:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 527, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "12082:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12082:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 526, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "12074:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12074:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 536, - "nodeType": "ExpressionStatement", - "src": "12074:55:0" - }, - { - "assignments": [ - 538 - ], - "declarations": [ - { - "constant": false, - "id": 538, - "name": "requiredGas", - "nodeType": "VariableDeclaration", - "scope": 553, - "src": "12139:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12139:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 543, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "12161:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 540, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "12172:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12172:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12161:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12139:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 548, - "name": "requiredGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "12289:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 546, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12272:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12272:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12272:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12265:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": "string" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12265:37:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 544, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12258:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "12258:45:0" - } - ] - }, - "documentation": "@dev Allows to estimate a Safe transaction.\n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`\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 @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).", - "id": 554, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 517, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "11849:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11849:10:0" - } - ], - "name": "requiredTxGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 508, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11750:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11750:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11762:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11762:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11777:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 511, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11777:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11798:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 513, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "11798:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11749:74:0" - }, - "returnParameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 554, - "src": "11877:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11877:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11876:9:0" - }, - "scope": 773, - "src": "11727:583:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 580, - "nodeType": "Block", - "src": "12619:147:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 560, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "12637:6:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 563, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 561, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12644:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12644:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12637:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12667:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12659:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12637:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206f776e6572732063616e20617070726f766520612068617368", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12671:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - }, - "value": "Only owners can approve a hash" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_60f21058f4a7689ef29853b3c9c17c9bf69856a949794649bb68878f00552475", - "typeString": "literal_string \"Only owners can approve a hash\"" - } - ], - "id": 559, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "12629:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12629:75:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 570, - "nodeType": "ExpressionStatement", - "src": "12629:75:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 571, - "name": "approvedHashes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12714:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(bytes32 => uint256))" - } - }, - "id": 575, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 572, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12729:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12729:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12714:26:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 576, - "indexExpression": { - "argumentTypes": null, - "id": 574, - "name": "hashToApprove", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "12741:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12714:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12758:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12714:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "12714:45:0" - } - ] - }, - "documentation": "@dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.\n@param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.", - "id": 581, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approveHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 556, - "name": "hashToApprove", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "12575:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 555, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12575:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12574:23:0" - }, - "returnParameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [], - "src": "12619:0:0" - }, - "scope": 773, - "src": "12554:212:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 596, - "nodeType": "Block", - "src": "13013:58:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 588, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "13023:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 592, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 590, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 583, - "src": "13053:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 589, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "13038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13038:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13023:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13063:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13023:41:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 595, - "nodeType": "ExpressionStatement", - "src": "13023:41:0" - } - ] - }, - "documentation": "@dev Marks a message as signed\n@param _data Arbitrary length data that should be marked as signed on the behalf of address(this)", - "id": 597, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 586, - "modifierName": { - "argumentTypes": null, - "id": 585, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "12998:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12998:10:0" - } - ], - "name": "signMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "12950:20:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 582, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12950:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12949:22:0" - }, - "returnParameters": { - "id": 587, - "nodeType": "ParameterList", - "parameters": [], - "src": "13013:0:0" - }, - "scope": 773, - "src": "12929:142:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 637, - "nodeType": "Block", - "src": "13525:386:0", - "statements": [ - { - "assignments": [ - 607 - ], - "declarations": [ - { - "constant": false, - "id": 607, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 637, - "src": "13535:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 606, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13535:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 611, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 609, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13572:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 608, - "name": "getMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "13557:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13557:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13535:43:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 612, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13592:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13592:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13613:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13592:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 633, - "nodeType": "Block", - "src": "13709:160:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 627, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13820:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 628, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "13833:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 629, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "13840:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13852:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 626, - "name": "checkSignatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "13804:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (bytes32,bytes memory,bytes memory,bool)" - } - }, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13804:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 632, - "nodeType": "ExpressionStatement", - "src": "13804:54:0" - } - ] - }, - "id": 634, - "nodeType": "IfStatement", - "src": "13588:281:0", - "trueBody": { - "id": 625, - "nodeType": "Block", - "src": "13616:87:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 617, - "name": "signedMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "13638:14:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 619, - "indexExpression": { - "argumentTypes": null, - "id": 618, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 607, - "src": "13653:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13638:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13669:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13638:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "48617368206e6f7420617070726f766564", - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13672:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fd8211c71ab965565e8a56b84284a02d17d4d89e6f05f14b26449d5de3a8c5b6", - "typeString": "literal_string \"Hash not approved\"" - }, - "value": "Hash not approved" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fd8211c71ab965565e8a56b84284a02d17d4d89e6f05f14b26449d5de3a8c5b6", - "typeString": "literal_string \"Hash not approved\"" - } - ], - "id": 616, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "13630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13630:62:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 624, - "nodeType": "ExpressionStatement", - "src": "13630:62:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 635, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "13885:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 605, - "id": 636, - "nodeType": "Return", - "src": "13878:26:0" - } - ] - }, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n@return a bool upon valid or invalid signature with corresponding _data", - "id": 638, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 599, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13430:20:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 598, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 601, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13452:25:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 600, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13452:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13429:49:0" - }, - "returnParameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 604, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 638, - "src": "13513:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 603, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13513:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13512:8:0" - }, - "scope": 773, - "src": "13404:507:0", - "stateMutability": "nonpayable", - "superFunction": 2079, - "visibility": "external" - }, - { - "body": { - "id": 671, - "nodeType": "Block", - "src": "14187:249:0", - "statements": [ - { - "assignments": [ - 646 - ], - "declarations": [ - { - "constant": false, - "id": 646, - "name": "safeMessageHash", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "14197:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 645, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14197:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 656, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "SAFE_MSG_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14257:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "14286:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 651, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14276:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14276:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 648, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "14246:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14246:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14246:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 647, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14223:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14223:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14197:108:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14367:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14362:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14362:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783031", - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14379:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14374:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14374:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 666, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "14386:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 667, - "name": "safeMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 646, - "src": "14403:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 658, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "14345:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14345:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14345:74:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 657, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "14322:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14322:107:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 644, - "id": 670, - "nodeType": "Return", - "src": "14315:114:0" - } - ] - }, - "documentation": "@dev Returns hash of a message that can be signed by owners.\n @param message Message that should be hashed\n @return Message hash.", - "id": 672, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMessageHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 640, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "14102:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 639, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14102:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14092:36:0" - }, - "returnParameters": { - "id": 644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 672, - "src": "14174:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 642, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14174:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14173:9:0" - }, - "scope": 773, - "src": "14069:367:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 730, - "nodeType": "Block", - "src": "15519:288:0", - "statements": [ - { - "assignments": [ - 698 - ], - "declarations": [ - { - "constant": false, - "id": 698, - "name": "safeTxHash", - "nodeType": "VariableDeclaration", - "scope": 730, - "src": "15529:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 697, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15529:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 717, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 702, - "name": "SAFE_TX_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "15584:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 703, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "15602:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 704, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "15606:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "15623:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 705, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "15613:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15613:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 708, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 680, - "src": "15630:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 709, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 682, - "src": "15641:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 710, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15652:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 711, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "15661:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 712, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "15671:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 713, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "15681:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 714, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "15697:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 700, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "15573:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15573:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15573:131:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 699, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "15550:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:164:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15529:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15753:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15748:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15748:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783031", - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15765:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x01" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15760:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15760:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 726, - "name": "domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15772:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 727, - "name": "safeTxHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "15789:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 718, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "15731:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15731:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15731:69:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 696, - "id": 729, - "nodeType": "Return", - "src": "15724:76:0" - } - ] - }, - "documentation": "@dev Returns the bytes that are hashed 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 safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash bytes.", - "id": 731, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encodeTransactionData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15189:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15189:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15210:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15210:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 678, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15234:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 677, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15234:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 680, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15262:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 679, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "15262:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 682, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15297:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 681, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 684, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15325:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15325:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 686, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15351:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 685, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15351:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15377:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15377:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 690, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15403:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15403:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 692, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15435:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15435:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15179:276:0" - }, - "returnParameters": { - "id": 696, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 695, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "15501:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 694, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15501:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15500:14:0" - }, - "scope": 773, - "src": "15149:658:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 771, - "nodeType": "Block", - "src": "16855:148:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 758, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 733, - "src": "16904:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 759, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "16908:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 760, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "16915:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 761, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "16921:9:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 762, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "16932:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "baseGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "16943:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "16952:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 765, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 747, - "src": "16962:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 766, - "name": "refundReceiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "16972:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 767, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "16988:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 757, - "name": "encodeTransactionData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16882:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,address,uint256) view returns (bytes memory)" - } - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16882:113:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 756, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "16872:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16872:124:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 755, - "id": 770, - "nodeType": "Return", - "src": "16865:131:0" - } - ] - }, - "documentation": "@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 safeTxGas Fas that should be used for the safe transaction.\n @param baseGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param gasToken Token address (or 0 if ETH) that is used for the payment.\n @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 772, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 733, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16530:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 732, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16530:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 735, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16551:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16551:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 737, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16575:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 736, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16575:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 739, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16603:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 738, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "16603:14:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 741, - "name": "safeTxGas", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16638:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16638:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 743, - "name": "baseGas", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16666:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16666:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 745, - "name": "gasPrice", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16692:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 744, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 747, - "name": "gasToken", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16718:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 746, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16718:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 749, - "name": "refundReceiver", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16744:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 748, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16744:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 751, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16776:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 750, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16776:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16520:276:0" - }, - "returnParameters": { - "id": 755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 754, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 772, - "src": "16842:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 753, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16842:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16841:9:0" - }, - "scope": 773, - "src": "16493:510:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 774, - "src": "568:16437:0" - } - ], - "src": "0:17006:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": { - "1": { - "links": {}, - "events": {}, - "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "updated_at": 1555073253689 - }, - "4": { - "links": {}, - "events": {}, - "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "updated_at": 1555073253748 - }, - "5": { - "links": {}, - "events": {}, - "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "updated_at": 1555073253836 - }, - "42": { - "links": {}, - "events": {}, - "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "updated_at": 1555073253800 - } - }, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.608Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ISignatureValidator.json b/safe-contracts/build/contracts/ISignatureValidator.json deleted file mode 100644 index ed883802..00000000 --- a/safe-contracts/build/contracts/ISignatureValidator.json +++ /dev/null @@ -1,423 +0,0 @@ -{ - "contractName": "ISignatureValidator", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\ncontract ISignatureValidator {\n // bytes4(keccak256(\"isValidSignature(bytes,bytes)\")\n bytes4 constant internal EIP1271_MAGIC_VALUE = 0x20c13b0b;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n *\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes calldata _data, \n bytes calldata _signature)\n external \n returns (bytes4);\n}", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "exportedSymbols": { - "ISignatureValidator": [ - 2080 - ] - }, - "id": 2081, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2067, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:14" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2080, - "linearizedBaseContracts": [ - 2080 - ], - "name": "ISignatureValidator", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2070, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "117:57:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2068, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "117:6:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783230633133623062", - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "164:10:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_549534475_by_1", - "typeString": "int_const 549534475" - }, - "value": "0x20c13b0b" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\nMUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\nMUST allow external calls", - "id": 2079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "669:20:14", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "669:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2074, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "700:25:14", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "700:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "659:67:14" - }, - "returnParameters": { - "id": 2078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "762:6:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "762:6:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "761:8:14" - }, - "scope": 2080, - "src": "634:136:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2081, - "src": "25:747:14" - } - ], - "src": "0:772:14" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol", - "exportedSymbols": { - "ISignatureValidator": [ - 2080 - ] - }, - "id": 2081, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2067, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:14" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2080, - "linearizedBaseContracts": [ - 2080 - ], - "name": "ISignatureValidator", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2070, - "name": "EIP1271_MAGIC_VALUE", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "117:57:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2068, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "117:6:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783230633133623062", - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "164:10:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_549534475_by_1", - "typeString": "int_const 549534475" - }, - "value": "0x20c13b0b" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\nMUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\nMUST allow external calls", - "id": 2079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isValidSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "669:20:14", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2071, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "669:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2074, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "700:25:14", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "700:5:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "659:67:14" - }, - "returnParameters": { - "id": 2078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2079, - "src": "762:6:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "762:6:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "761:8:14" - }, - "scope": 2080, - "src": "634:136:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2081, - "src": "25:747:14" - } - ], - "src": "0:772:14" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.635Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json deleted file mode 100644 index 222c6be4..00000000 --- a/safe-contracts/build/contracts/MasterCopy.json +++ /dev/null @@ -1,796 +0,0 @@ -{ - "contractName": "MasterCopy", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061023d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80637de7edef14610030575b600080fd5b6100726004803603602081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610074565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806101e6602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101c26024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820f0bc2727e8f495f31c4f081c9285cc638d0c77bfa20d15cd34dc551d4a1082e10029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80637de7edef14610030575b600080fd5b6100726004803603602081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610074565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806101e6602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101c26024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820f0bc2727e8f495f31c4f081c9285cc638d0c77bfa20d15cd34dc551d4a1082e10029", - "sourceMap": "203:682:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:682:9;;;;;;;", - "deployedSourceMap": "203:682:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:682:9;;;;;;;;;;;;;;;;;;;626:257;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - \ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != address(0), \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "exportedSymbols": { - "MasterCopy": [ - 1839 - ] - }, - "id": 1840, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1812, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1813, - "nodeType": "ImportDirective", - "scope": 1840, - "sourceUnit": 1882, - "src": "24:30:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1814, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "226:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1815, - "nodeType": "InheritanceSpecifier", - "src": "226:14:9" - } - ], - "contractDependencies": [ - 1881 - ], - "contractKind": "contract", - "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1839, - "linearizedBaseContracts": [ - 1839, - 1881 - ], - "name": "MasterCopy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1817, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1839, - "src": "465:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "465:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1837, - "nodeType": "Block", - "src": "711:172:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1825, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "776:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "791:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "791:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "776:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "803:38:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 1824, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "768:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "768:74:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1832, - "nodeType": "ExpressionStatement", - "src": "768:74:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1833, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "852:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1834, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "865:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "852:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1836, - "nodeType": "ExpressionStatement", - "src": "852:24:9" - } - ] - }, - "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 1838, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1822, - "modifierName": { - "argumentTypes": null, - "id": 1821, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "696:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "696:10:9" - } - ], - "name": "changeMasterCopy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1819, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1838, - "src": "652:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1818, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "652:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "651:21:9" - }, - "returnParameters": { - "id": 1823, - "nodeType": "ParameterList", - "parameters": [], - "src": "711:0:9" - }, - "scope": 1839, - "src": "626:257:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1840, - "src": "203:682:9" - } - ], - "src": "0:886:9" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "exportedSymbols": { - "MasterCopy": [ - 1839 - ] - }, - "id": 1840, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1812, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "./SelfAuthorized.sol", - "id": 1813, - "nodeType": "ImportDirective", - "scope": 1840, - "sourceUnit": 1882, - "src": "24:30:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1814, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "226:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1815, - "nodeType": "InheritanceSpecifier", - "src": "226:14:9" - } - ], - "contractDependencies": [ - 1881 - ], - "contractKind": "contract", - "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1839, - "linearizedBaseContracts": [ - 1839, - 1881 - ], - "name": "MasterCopy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1817, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1839, - "src": "465:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "465:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1837, - "nodeType": "Block", - "src": "711:172:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1825, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "776:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "791:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "791:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "776:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 1830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "803:38:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 1824, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "768:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "768:74:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1832, - "nodeType": "ExpressionStatement", - "src": "768:74:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1833, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "852:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1834, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1819, - "src": "865:11:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "852:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1836, - "nodeType": "ExpressionStatement", - "src": "852:24:9" - } - ] - }, - "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 1838, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1822, - "modifierName": { - "argumentTypes": null, - "id": 1821, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "696:10:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "696:10:9" - } - ], - "name": "changeMasterCopy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1819, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 1838, - "src": "652:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1818, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "652:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "651:21:9" - }, - "returnParameters": { - "id": 1823, - "nodeType": "ParameterList", - "parameters": [], - "src": "711:0:9" - }, - "scope": 1839, - "src": "626:257:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1840, - "src": "203:682:9" - } - ], - "src": "0:886:9" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.632Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json deleted file mode 100644 index 9b173f48..00000000 --- a/safe-contracts/build/contracts/Migrations.json +++ /dev/null @@ -1,1372 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102ae806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea165627a7a7230582050b33406cf3b3e2a050ce7348b46465810879370caf607efe6df118f71761e100029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100fd575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b005b61009d6101f7565b6040518082815260200191505060405180910390f35b6100bb6101fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b8101908080359060200190929190505050610222565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f45760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101da57600080fd5b505af11580156101ee573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561027f57806001819055505b5056fea165627a7a7230582050b33406cf3b3e2a050ce7348b46465810879370caf607efe6df118f71761e100029", - "sourceMap": "25:572:1:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:1;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", - "deployedSourceMap": "25:572:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:572:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;400:195:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;77:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;51:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;265:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;265:129:1;;;;;;;;;;;;;;;;;:::i;:::-;;400:195;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;486:19;519:11;486:45;;541:8;:21;;;563:24;;541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:1;;;;177:1;152:26;400:195;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;265:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;378:9;351:24;:36;;;;152:26;265:129;:::o", - "source": "pragma solidity ^0.5.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor()\n public\n {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed)\n public\n restricted\n {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address)\n public\n restricted\n {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/Migrations.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 830 - ] - }, - "id": 831, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 775, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 830, - "linearizedBaseContracts": [ - 830 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 777, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 830, - "src": "51:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 776, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 779, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 830, - "src": "77:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "77:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 787, - "nodeType": "Block", - "src": "142:43:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 781, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "156:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 783, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "170:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "156:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 786, - "nodeType": "IfStatement", - "src": "152:26:1", - "trueBody": { - "id": 785, - "nodeType": "PlaceholderStatement", - "src": "177:1:1" - } - } - ] - }, - "documentation": null, - "id": 788, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 780, - "nodeType": "ParameterList", - "parameters": [], - "src": "139:2:1" - }, - "src": "120:65:1", - "visibility": "internal" - }, - { - "body": { - "id": 796, - "nodeType": "Block", - "src": "224:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 791, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 792, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "242:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "242:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "234:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 795, - "nodeType": "ExpressionStatement", - "src": "234:18:1" - } - ] - }, - "documentation": null, - "id": 797, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 789, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:2:1" - }, - "returnParameters": { - "id": 790, - "nodeType": "ParameterList", - "parameters": [], - "src": "224:0:1" - }, - "scope": 830, - "src": "191:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 808, - "nodeType": "Block", - "src": "341:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 804, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 779, - "src": "351:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 805, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "351:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 807, - "nodeType": "ExpressionStatement", - "src": "351:36:1" - } - ] - }, - "documentation": null, - "id": 809, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 802, - "modifierName": { - "argumentTypes": null, - "id": 801, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "326:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "326:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 799, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 809, - "src": "287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:16:1" - }, - "returnParameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:0:1" - }, - "scope": 830, - "src": "265:129:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 828, - "nodeType": "Block", - "src": "476:119:1", - "statements": [ - { - "assignments": [ - 817 - ], - "declarations": [ - { - "constant": false, - "id": 817, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 828, - "src": "486:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 816, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 830, - "src": "486:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 821, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 819, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 818, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "508:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$830_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "508:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "486:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 825, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 779, - "src": "563:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 822, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "541:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 809, - "src": "541:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "541:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 827, - "nodeType": "ExpressionStatement", - "src": "541:47:1" - } - ] - }, - "documentation": null, - "id": 829, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 814, - "modifierName": { - "argumentTypes": null, - "id": 813, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "461:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "461:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 811, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 829, - "src": "417:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "417:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "416:21:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "476:0:1" - }, - "scope": 830, - "src": "400:195:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 831, - "src": "25:572:1" - } - ], - "src": "0:598:1" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 830 - ] - }, - "id": 831, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 775, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 830, - "linearizedBaseContracts": [ - 830 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 777, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 830, - "src": "51:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 776, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "51:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 779, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 830, - "src": "77:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "77:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 787, - "nodeType": "Block", - "src": "142:43:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 781, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "156:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 783, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "170:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "156:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 786, - "nodeType": "IfStatement", - "src": "152:26:1", - "trueBody": { - "id": 785, - "nodeType": "PlaceholderStatement", - "src": "177:1:1" - } - } - ] - }, - "documentation": null, - "id": 788, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 780, - "nodeType": "ParameterList", - "parameters": [], - "src": "139:2:1" - }, - "src": "120:65:1", - "visibility": "internal" - }, - { - "body": { - "id": 796, - "nodeType": "Block", - "src": "224:35:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 791, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 792, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "242:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "242:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "234:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 795, - "nodeType": "ExpressionStatement", - "src": "234:18:1" - } - ] - }, - "documentation": null, - "id": 797, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 789, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:2:1" - }, - "returnParameters": { - "id": 790, - "nodeType": "ParameterList", - "parameters": [], - "src": "224:0:1" - }, - "scope": 830, - "src": "191:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 808, - "nodeType": "Block", - "src": "341:53:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 804, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 779, - "src": "351:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 805, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "378:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "351:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 807, - "nodeType": "ExpressionStatement", - "src": "351:36:1" - } - ] - }, - "documentation": null, - "id": 809, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 802, - "modifierName": { - "argumentTypes": null, - "id": 801, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "326:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "326:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 799, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 809, - "src": "287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:16:1" - }, - "returnParameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [], - "src": "341:0:1" - }, - "scope": 830, - "src": "265:129:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 828, - "nodeType": "Block", - "src": "476:119:1", - "statements": [ - { - "assignments": [ - 817 - ], - "declarations": [ - { - "constant": false, - "id": 817, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 828, - "src": "486:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 816, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 830, - "src": "486:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 821, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 819, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "519:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 818, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "508:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$830_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "508:23:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "486:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 825, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 779, - "src": "563:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 822, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "541:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$830", - "typeString": "contract Migrations" - } - }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 809, - "src": "541:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "541:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 827, - "nodeType": "ExpressionStatement", - "src": "541:47:1" - } - ] - }, - "documentation": null, - "id": 829, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 814, - "modifierName": { - "argumentTypes": null, - "id": 813, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 788, - "src": "461:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "461:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 811, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 829, - "src": "417:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "417:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "416:21:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "476:0:1" - }, - "scope": 830, - "src": "400:195:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 831, - "src": "25:572:1" - } - ], - "src": "0:598:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.618Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MockContract.json b/safe-contracts/build/contracts/MockContract.json deleted file mode 100644 index 94765f5e..00000000 --- a/safe-contracts/build/contracts/MockContract.json +++ /dev/null @@ -1,28238 +0,0 @@ -{ - "contractName": "MockContract", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_END_HASH", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_START", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MOCKS_LIST_END", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_ANY_MOCKS", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenAnyReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bool" - } - ], - "name": "givenAnyReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenAnyReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "address" - } - ], - "name": "givenAnyReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "message", - "type": "string" - } - ], - "name": "givenAnyRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenCalldataReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenCalldataReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenCalldataReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenCalldataReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenMethodReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenMethodReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenMethodReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenMethodReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenCalldataRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenMethodRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenCalldataRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenMethodRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenCalldataRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "givenMethodRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "invocationCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "invocationCountForMethod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "invocationCountForCalldata", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "reset", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f0100000000000000000000000000000000000000000000000000000000000000815260200190815260200160002090805190602001906200008f92919062000143565b507f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c0217905550620001f2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018657805160ff1916838001178555620001b7565b82800160010185558215620001b7579182015b82811115620001b657825182559160200191906001019062000199565b5b509050620001c69190620001ca565b5090565b620001ef91905b80821115620001eb576000816000905550600101620001d1565b5090565b90565b61362880620002026000396000f3fe6080604052600436106101c25760003560e01c806387abab65116100f7578063cf11ff5d11610095578063e211b8a511610064578063e211b8a514611642578063eb861f6914611659578063f07da229146116df578063f5afa9c114611748576101c2565b8063cf11ff5d1461146f578063d6fe977814611515578063d73ca0ac1461159b578063d826f88f1461162b576101c2565b8063aa788c55116100d1578063aa788c551461122d578063af21ac78146112b3578063b3901f29146112ee578063c6ee167f14611394576101c2565b806387abab6514610ff15780639a1dc86b146110775780639eaeed7514611152576101c2565b80635a3855ab11610164578063682b47971161013e578063682b479714610df857806368ab6f2f14610e495780636f40075614610ecf5780637cd96ee414610f61576101c2565b80635a3855ab14610c605780636193659414610cf257806367aad04a14610dcd576101c2565b806336ff0ee5116101a057806336ff0ee514610ad85780633956dc6b14610b155780634937c4f614610b2c578063586984a414610bc6576101c2565b80630a20119f146109fc57806321fed4d614610a275780632ed238dc14610aad575b600080359050600160028111156101d557fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561021657fe5b141561030257600360003660405180838380828437808301925050509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102f35780601f106102c8576101008083540402835291602001916102f3565b820191906000526020600020905b8154815290600101906020018083116102d657829003601f168201915b50509250505060405180910390fd5b60028081111561030e57fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561034f57fe5b141561035e5761035d6117d8565b5b6060600260003660405180838380828437808301925050509250505090815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041c5780601f106103f15761010080835404028352916020019161041c565b820191906000526020600020905b8154815290600101906020018083116103ff57829003601f168201915b5050505050905060008151141561072b576001600281111561043a57fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156104a457fe5b14156105b95760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105aa5780601f1061057f576101008083540402835291602001916105aa565b820191906000526020600020905b81548152906001019060200180831161058d57829003601f168201915b50509250505060405180910390fd5b6002808111156105c557fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561062f57fe5b141561063e5761063d6117d8565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107235780601f106106f857610100808354040283529160200191610723565b820191906000526020600020905b81548152906001019060200180831161070657829003601f168201915b505050505090505b6000815114156108f7576001600281111561074257fe5b600a60009054906101000a900460ff16600281111561075d57fe5b141561082357600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b50509250505060405180910390fd5b60028081111561082f57fe5b600a60009054906101000a900460ff16600281111561084a57fe5b1415610859576108586117d8565b5b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004019250505060405160208183030381529060405280519060200120815260200190815260200160002060008282540192505081905550600160046000600e546000366040516020018084815260200183838082843780830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002060008282540192505081905550805181602001f35b348015610a0857600080fd5b50610a116117fd565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610aab60048036036020811015610a4a57600080fd5b8101908080359060200190640100000000811115610a6757600080fd5b820183602082011115610a7957600080fd5b80359060200191846001830284011164010000000083111715610a9b57600080fd5b9091929391929390505050611807565b005b348015610ab957600080fd5b50610ac26118a1565b6040518082815260200191505060405180910390f35b348015610ae457600080fd5b50610b1360048036036020811015610afb57600080fd5b8101908080351515906020019092919050505061193a565b005b348015610b2157600080fd5b50610b2a611965565b005b348015610b3857600080fd5b50610bb060048036036020811015610b4f57600080fd5b8101908080359060200190640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b909192939192939050505061198b565b6040518082815260200191505060405180910390f35b348015610bd257600080fd5b50610c4a60048036036020811015610be957600080fd5b8101908080359060200190640100000000811115610c0657600080fd5b820183602082011115610c1857600080fd5b80359060200191846001830284011164010000000083111715610c3a57600080fd5b9091929391929390505050611a68565b6040518082815260200191505060405180910390f35b348015610c6c57600080fd5b50610cf060048036036040811015610c8357600080fd5b8101908080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b9091929391929390803515159060200190929190505050611abf565b005b348015610cfe57600080fd5b50610dcb60048036036040811015610d1557600080fd5b8101908080359060200190640100000000811115610d3257600080fd5b820183602082011115610d4457600080fd5b80359060200191846001830284011164010000000083111715610d6657600080fd5b909192939192939080359060200190640100000000811115610d8757600080fd5b820183602082011115610d9957600080fd5b80359060200191846001830284011164010000000083111715610dbb57600080fd5b9091929391929390505050611b31565b005b348015610dd957600080fd5b50610de2611bc9565b6040518082815260200191505060405180910390f35b348015610e0457600080fd5b50610e4760048036036020811015610e1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bed565b005b348015610e5557600080fd5b50610ecd60048036036020811015610e6c57600080fd5b8101908080359060200190640100000000811115610e8957600080fd5b820183602082011115610e9b57600080fd5b80359060200191846001830284011164010000000083111715610ebd57600080fd5b9091929391929390505050611c01565b005b348015610edb57600080fd5b50610f5f60048036036040811015610ef257600080fd5b8101908080359060200190640100000000811115610f0f57600080fd5b820183602082011115610f2157600080fd5b80359060200191846001830284011164010000000083111715610f4357600080fd5b9091929391929390803515159060200190929190505050611cd3565b005b348015610f6d57600080fd5b50610f76611d45565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fb6578082015181840152602081019050610f9b565b50505050905090810190601f168015610fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ffd57600080fd5b506110756004803603602081101561101457600080fd5b810190808035906020019064010000000081111561103157600080fd5b82018360208201111561104357600080fd5b8035906020019184600183028401116401000000008311171561106557600080fd5b9091929391929390505050611d7e565b005b34801561108357600080fd5b506111506004803603604081101561109a57600080fd5b81019080803590602001906401000000008111156110b757600080fd5b8201836020820111156110c957600080fd5b803590602001918460018302840111640100000000831117156110eb57600080fd5b90919293919293908035906020019064010000000081111561110c57600080fd5b82018360208201111561111e57600080fd5b8035906020019184600183028401116401000000008311171561114057600080fd5b9091929391929390505050611db8565b005b34801561115e57600080fd5b5061122b6004803603604081101561117557600080fd5b810190808035906020019064010000000081111561119257600080fd5b8201836020820111156111a457600080fd5b803590602001918460018302840111640100000000831117156111c657600080fd5b9091929391929390803590602001906401000000008111156111e757600080fd5b8201836020820111156111f957600080fd5b8035906020019184600183028401116401000000008311171561121b57600080fd5b9091929391929390505050611eed565b005b34801561123957600080fd5b506112b16004803603602081101561125057600080fd5b810190808035906020019064010000000081111561126d57600080fd5b82018360208201111561127f57600080fd5b803590602001918460018302840111640100000000831117156112a157600080fd5b9091929391929390505050611fbf565b005b3480156112bf57600080fd5b506112ec600480360360208110156112d657600080fd5b8101908080359060200190929190505050612091565b005b3480156112fa57600080fd5b506113926004803603604081101561131157600080fd5b810190808035906020019064010000000081111561132e57600080fd5b82018360208201111561134057600080fd5b8035906020019184600183028401116401000000008311171561136257600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a5565b005b3480156113a057600080fd5b5061146d600480360360408110156113b757600080fd5b81019080803590602001906401000000008111156113d457600080fd5b8201836020820111156113e657600080fd5b8035906020019184600183028401116401000000008311171561140857600080fd5b90919293919293908035906020019064010000000081111561142957600080fd5b82018360208201111561143b57600080fd5b8035906020019184600183028401116401000000008311171561145d57600080fd5b9091929391929390505050612100565b005b34801561147b57600080fd5b506115136004803603604081101561149257600080fd5b81019080803590602001906401000000008111156114af57600080fd5b8201836020820111156114c157600080fd5b803590602001918460018302840111640100000000831117156114e357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612198565b005b34801561152157600080fd5b506115996004803603602081101561153857600080fd5b810190808035906020019064010000000081111561155557600080fd5b82018360208201111561156757600080fd5b8035906020019184600183028401116401000000008311171561158957600080fd5b90919293919293905050506121f3565b005b3480156115a757600080fd5b50611629600480360360408110156115be57600080fd5b81019080803590602001906401000000008111156115db57600080fd5b8201836020820111156115ed57600080fd5b8035906020019184600183028401116401000000008311171561160f57600080fd5b909192939192939080359060200190929190505050612244565b005b34801561163757600080fd5b5061164061229f565b005b34801561164e57600080fd5b50611657612b62565b005b34801561166557600080fd5b506116dd6004803603602081101561167c57600080fd5b810190808035906020019064010000000081111561169957600080fd5b8201836020820111156116ab57600080fd5b803590602001918460018302840111640100000000831117156116cd57600080fd5b9091929391929390505050612bae565b005b3480156116eb57600080fd5b506116f4612c92565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561175457600080fd5b506117d66004803603604081101561176b57600080fd5b810190808035906020019064010000000081111561178857600080fd5b82018360208201111561179a57600080fd5b803590602001918460018302840111640100000000831117156117bc57600080fd5b909192939192939080359060200190929190505050612cb6565b005b5b6001156117fb5760006060600060c060008060066107d05a03f19050506117d9565b565b6000600d54905090565b600260018383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561184b57fe5b021790555061189d82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b5050565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831061190a57805182526020820191506020810190506020830392506118e7565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b60008161194857600061194b565b60015b60ff16905061196161195c82612dfc565b612e40565b5050565b6002600a60006101000a81548160ff0219169083600281111561198457fe5b0217905550565b6000806119db84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040528051906020012081526020019081526020016000205491505092915050565b600060046000600e5485856040516020018084815260200183838082843780830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b600081611acd576000611ad0565b60015b60ff169050611b2b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611b2683612dfc565b612f0f565b50505050565b611bc384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612f0f565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b611bfe611bf982613025565b612e40565b50565b6000611c5083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611cc057fe5b0217905550611cce81613057565b505050565b600081611ce1576000611ce4565b60015b60ff169050611d3f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611d3a83612dfc565b61325c565b50505050565b6040518060400160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff02191690836002811115611d9d57fe5b02179055508181600c9190611db3929190613350565b505050565b6000611e0785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611e7757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209190611edc929190613350565b50611ee681613057565b5050505050565b6001808585604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115611f3057fe5b021790555081816003868660405180838380828437808301925050509250505090815260200160405180910390209190611f6b929190613350565b50611fb984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b50505050565b600061200e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561207e57fe5b021790555061208c81613057565b505050565b6120a261209d82612dfc565b612e40565b50565b6120fb83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120f683613025565b612f0f565b505050565b61219284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061325c565b50505050565b6121ee83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121e983613025565b61325c565b505050565b61224082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e40565b5050565b61229a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061229583612dfc565b612f0f565b505050565b60606000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123675780601f1061233c57610100808354040283529160200191612367565b820191906000526020600020905b81548152906001019060200180831161234a57829003601f168201915b505050505090506000818051906020012090505b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083106123e457805182526020820191506020810190506020830392506123c1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081146126ae5760006001836040518082805190602001908083835b6020831061244f578051825260208201915060208101905060208303925061242c565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561249d57fe5b0217905550604051806020016040528060008152506002836040518082805190602001908083835b602083106124e857805182526020820191506020810190506020830392506124c5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061252e9291906133d0565b50604051806020016040528060008152506003836040518082805190602001908083835b602083106125755780518252602082019150602081019050602083039250612552565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906125bb929190613450565b506000808281526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126625780601f1061263757610100808354040283529160200191612662565b820191906000526020600020905b81548152906001019060200180831161264557829003601f168201915b5050505050915060405180602001604052806000815250600080838152602001908152602001600020908051906020019061269e9291906133d0565b508180519060200120905061237b565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f0100000000000000000000000000000000000000000000000000000000000000815260200190815260200160002090805190602001906127299291906134d0565b506000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b90505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612a4d576000819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561288657fe5b02179055506040518060200160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906128ff9291906133d0565b506040518060200160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612974929190613450565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b9150600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c0217905550506127ae565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555060405180602001604052806000815250600b9080519060200190612b1f9291906133d0565b506000600a60006101000a81548160ff02191690836002811115612b3f57fe5b02179055506000600d819055506001600e60008282540192505081905550505050565b6001600a60006101000a81548160ff02191690836002811115612b8157fe5b021790555060405180602001604052806000815250600c9080519060200190612bab929190613450565b50565b6001808383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115612bf157fe5b0217905550604051806020016040528060008152506003838360405180838380828437808301925050509250505090815260200160405180910390209080519060200190612c40929190613450565b50612c8e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b612d0c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d0783612dfc565b61325c565b505050565b60008180519060200120905060008060008381526020019081526020016000208054600181600116156101000203166002900490501415612df8576000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000206000808381526020019081526020016000209080546001816001161561010002031660029004612daf929190613550565b50816000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000209080519060200190612df69291906134d0565b505b5050565b606060206040519080825280601f01601f191660200182016040528015612e325781602001600182028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff02191690836002811115612e5f57fe5b021790555080600b9080519060200190612e7a9291906134d0565b5050565b60008060008090505b6004811015612f05576008810260ff60f81b858381518110612ea557fe5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c821791508080600101915050612e87565b5080915050919050565b60006001836040518082805190602001908083835b60208310612f475780518252602082019150602081019050602083039250612f24565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612f9557fe5b0217905550806002836040518082805190602001908083835b60208310612fd15780518252602082019150602081019050602083039250612fae565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906130179291906134d0565b5061302182612d11565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561325957600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c02179055505b50565b600061326783612e7e565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156132d757fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906133419291906134d0565b5061334b81613057565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061339157803560ff19168380011785556133bf565b828001600101855582156133bf579182015b828111156133be5782358255916020019190600101906133a3565b5b5090506133cc91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061341157805160ff191683800117855561343f565b8280016001018555821561343f579182015b8281111561343e578251825591602001919060010190613423565b5b50905061344c91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061349157805160ff19168380011785556134bf565b828001600101855582156134bf579182015b828111156134be5782518255916020019190600101906134a3565b5b5090506134cc91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061351157805160ff191683800117855561353f565b8280016001018555821561353f579182015b8281111561353e578251825591602001919060010190613523565b5b50905061354c91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061358957805485556135c6565b828001600101855582156135c657600052602060002091601f016020900482015b828111156135c55782548255916001019190600101906135aa565b5b5090506135d391906135d7565b5090565b6135f991905b808211156135f55760008160009055506001016135dd565b5090565b9056fea165627a7a72305820aa3a44cb27c95db2fd1b19befff5031e2b2dd04255cd8a8deb76c84cde8479bd0029", - "deployedBytecode": "0x6080604052600436106101c25760003560e01c806387abab65116100f7578063cf11ff5d11610095578063e211b8a511610064578063e211b8a514611642578063eb861f6914611659578063f07da229146116df578063f5afa9c114611748576101c2565b8063cf11ff5d1461146f578063d6fe977814611515578063d73ca0ac1461159b578063d826f88f1461162b576101c2565b8063aa788c55116100d1578063aa788c551461122d578063af21ac78146112b3578063b3901f29146112ee578063c6ee167f14611394576101c2565b806387abab6514610ff15780639a1dc86b146110775780639eaeed7514611152576101c2565b80635a3855ab11610164578063682b47971161013e578063682b479714610df857806368ab6f2f14610e495780636f40075614610ecf5780637cd96ee414610f61576101c2565b80635a3855ab14610c605780636193659414610cf257806367aad04a14610dcd576101c2565b806336ff0ee5116101a057806336ff0ee514610ad85780633956dc6b14610b155780634937c4f614610b2c578063586984a414610bc6576101c2565b80630a20119f146109fc57806321fed4d614610a275780632ed238dc14610aad575b600080359050600160028111156101d557fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561021657fe5b141561030257600360003660405180838380828437808301925050509250505090815260200160405180910390206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156102f35780601f106102c8576101008083540402835291602001916102f3565b820191906000526020600020905b8154815290600101906020018083116102d657829003601f168201915b50509250505060405180910390fd5b60028081111561030e57fe5b6001600036604051808383808284378083019250505092505050908152602001604051809103902060009054906101000a900460ff16600281111561034f57fe5b141561035e5761035d6117d8565b5b6060600260003660405180838380828437808301925050509250505090815260200160405180910390208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561041c5780601f106103f15761010080835404028352916020019161041c565b820191906000526020600020905b8154815290600101906020018083116103ff57829003601f168201915b5050505050905060008151141561072b576001600281111561043a57fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660028111156104a457fe5b14156105b95760086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000206040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105aa5780601f1061057f576101008083540402835291602001916105aa565b820191906000526020600020905b81548152906001019060200180831161058d57829003601f168201915b50509250505060405180910390fd5b6002808111156105c557fe5b60066000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff16600281111561062f57fe5b141561063e5761063d6117d8565b5b60076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107235780601f106106f857610100808354040283529160200191610723565b820191906000526020600020905b81548152906001019060200180831161070657829003601f168201915b505050505090505b6000815114156108f7576001600281111561074257fe5b600a60009054906101000a900460ff16600281111561075d57fe5b141561082357600c6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108145780601f106107e957610100808354040283529160200191610814565b820191906000526020600020905b8154815290600101906020018083116107f757829003601f168201915b50509250505060405180910390fd5b60028081111561082f57fe5b600a60009054906101000a900460ff16600281111561084a57fe5b1415610859576108586117d8565b5b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b505050505090505b6001600d60008282540192505081905550600160096000600e548560405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004019250505060405160208183030381529060405280519060200120815260200190815260200160002060008282540192505081905550600160046000600e546000366040516020018084815260200183838082843780830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002060008282540192505081905550805181602001f35b348015610a0857600080fd5b50610a116117fd565b6040518082815260200191505060405180910390f35b348015610a3357600080fd5b50610aab60048036036020811015610a4a57600080fd5b8101908080359060200190640100000000811115610a6757600080fd5b820183602082011115610a7957600080fd5b80359060200191846001830284011164010000000083111715610a9b57600080fd5b9091929391929390505050611807565b005b348015610ab957600080fd5b50610ac26118a1565b6040518082815260200191505060405180910390f35b348015610ae457600080fd5b50610b1360048036036020811015610afb57600080fd5b8101908080351515906020019092919050505061193a565b005b348015610b2157600080fd5b50610b2a611965565b005b348015610b3857600080fd5b50610bb060048036036020811015610b4f57600080fd5b8101908080359060200190640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b909192939192939050505061198b565b6040518082815260200191505060405180910390f35b348015610bd257600080fd5b50610c4a60048036036020811015610be957600080fd5b8101908080359060200190640100000000811115610c0657600080fd5b820183602082011115610c1857600080fd5b80359060200191846001830284011164010000000083111715610c3a57600080fd5b9091929391929390505050611a68565b6040518082815260200191505060405180910390f35b348015610c6c57600080fd5b50610cf060048036036040811015610c8357600080fd5b8101908080359060200190640100000000811115610ca057600080fd5b820183602082011115610cb257600080fd5b80359060200191846001830284011164010000000083111715610cd457600080fd5b9091929391929390803515159060200190929190505050611abf565b005b348015610cfe57600080fd5b50610dcb60048036036040811015610d1557600080fd5b8101908080359060200190640100000000811115610d3257600080fd5b820183602082011115610d4457600080fd5b80359060200191846001830284011164010000000083111715610d6657600080fd5b909192939192939080359060200190640100000000811115610d8757600080fd5b820183602082011115610d9957600080fd5b80359060200191846001830284011164010000000083111715610dbb57600080fd5b9091929391929390505050611b31565b005b348015610dd957600080fd5b50610de2611bc9565b6040518082815260200191505060405180910390f35b348015610e0457600080fd5b50610e4760048036036020811015610e1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bed565b005b348015610e5557600080fd5b50610ecd60048036036020811015610e6c57600080fd5b8101908080359060200190640100000000811115610e8957600080fd5b820183602082011115610e9b57600080fd5b80359060200191846001830284011164010000000083111715610ebd57600080fd5b9091929391929390505050611c01565b005b348015610edb57600080fd5b50610f5f60048036036040811015610ef257600080fd5b8101908080359060200190640100000000811115610f0f57600080fd5b820183602082011115610f2157600080fd5b80359060200191846001830284011164010000000083111715610f4357600080fd5b9091929391929390803515159060200190929190505050611cd3565b005b348015610f6d57600080fd5b50610f76611d45565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fb6578082015181840152602081019050610f9b565b50505050905090810190601f168015610fe35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ffd57600080fd5b506110756004803603602081101561101457600080fd5b810190808035906020019064010000000081111561103157600080fd5b82018360208201111561104357600080fd5b8035906020019184600183028401116401000000008311171561106557600080fd5b9091929391929390505050611d7e565b005b34801561108357600080fd5b506111506004803603604081101561109a57600080fd5b81019080803590602001906401000000008111156110b757600080fd5b8201836020820111156110c957600080fd5b803590602001918460018302840111640100000000831117156110eb57600080fd5b90919293919293908035906020019064010000000081111561110c57600080fd5b82018360208201111561111e57600080fd5b8035906020019184600183028401116401000000008311171561114057600080fd5b9091929391929390505050611db8565b005b34801561115e57600080fd5b5061122b6004803603604081101561117557600080fd5b810190808035906020019064010000000081111561119257600080fd5b8201836020820111156111a457600080fd5b803590602001918460018302840111640100000000831117156111c657600080fd5b9091929391929390803590602001906401000000008111156111e757600080fd5b8201836020820111156111f957600080fd5b8035906020019184600183028401116401000000008311171561121b57600080fd5b9091929391929390505050611eed565b005b34801561123957600080fd5b506112b16004803603602081101561125057600080fd5b810190808035906020019064010000000081111561126d57600080fd5b82018360208201111561127f57600080fd5b803590602001918460018302840111640100000000831117156112a157600080fd5b9091929391929390505050611fbf565b005b3480156112bf57600080fd5b506112ec600480360360208110156112d657600080fd5b8101908080359060200190929190505050612091565b005b3480156112fa57600080fd5b506113926004803603604081101561131157600080fd5b810190808035906020019064010000000081111561132e57600080fd5b82018360208201111561134057600080fd5b8035906020019184600183028401116401000000008311171561136257600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a5565b005b3480156113a057600080fd5b5061146d600480360360408110156113b757600080fd5b81019080803590602001906401000000008111156113d457600080fd5b8201836020820111156113e657600080fd5b8035906020019184600183028401116401000000008311171561140857600080fd5b90919293919293908035906020019064010000000081111561142957600080fd5b82018360208201111561143b57600080fd5b8035906020019184600183028401116401000000008311171561145d57600080fd5b9091929391929390505050612100565b005b34801561147b57600080fd5b506115136004803603604081101561149257600080fd5b81019080803590602001906401000000008111156114af57600080fd5b8201836020820111156114c157600080fd5b803590602001918460018302840111640100000000831117156114e357600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612198565b005b34801561152157600080fd5b506115996004803603602081101561153857600080fd5b810190808035906020019064010000000081111561155557600080fd5b82018360208201111561156757600080fd5b8035906020019184600183028401116401000000008311171561158957600080fd5b90919293919293905050506121f3565b005b3480156115a757600080fd5b50611629600480360360408110156115be57600080fd5b81019080803590602001906401000000008111156115db57600080fd5b8201836020820111156115ed57600080fd5b8035906020019184600183028401116401000000008311171561160f57600080fd5b909192939192939080359060200190929190505050612244565b005b34801561163757600080fd5b5061164061229f565b005b34801561164e57600080fd5b50611657612b62565b005b34801561166557600080fd5b506116dd6004803603602081101561167c57600080fd5b810190808035906020019064010000000081111561169957600080fd5b8201836020820111156116ab57600080fd5b803590602001918460018302840111640100000000831117156116cd57600080fd5b9091929391929390505050612bae565b005b3480156116eb57600080fd5b506116f4612c92565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561175457600080fd5b506117d66004803603604081101561176b57600080fd5b810190808035906020019064010000000081111561178857600080fd5b82018360208201111561179a57600080fd5b803590602001918460018302840111640100000000831117156117bc57600080fd5b909192939192939080359060200190929190505050612cb6565b005b5b6001156117fb5760006060600060c060008060066107d05a03f19050506117d9565b565b6000600d54905090565b600260018383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff0219169083600281111561184b57fe5b021790555061189d82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b5050565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b6020831061190a57805182526020820191506020810190506020830392506118e7565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081565b60008161194857600061194b565b60015b60ff16905061196161195c82612dfc565b612e40565b5050565b6002600a60006101000a81548160ff0219169083600281111561198457fe5b0217905550565b6000806119db84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b905060096000600e548360405160200180838152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600401925050506040516020818303038152906040528051906020012081526020019081526020016000205491505092915050565b600060046000600e5485856040516020018084815260200183838082843780830192505050935050505060405160208183030381529060405280519060200120815260200190815260200160002054905092915050565b600081611acd576000611ad0565b60015b60ff169050611b2b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611b2683612dfc565b612f0f565b50505050565b611bc384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612f0f565b50505050565b7f010000000000000000000000000000000000000000000000000000000000000081565b611bfe611bf982613025565b612e40565b50565b6000611c5083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600260066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611cc057fe5b0217905550611cce81613057565b505050565b600081611ce1576000611ce4565b60015b60ff169050611d3f84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611d3a83612dfc565b61325c565b50505050565b6040518060400160405280600481526020017f307866660000000000000000000000000000000000000000000000000000000081525081565b6001600a60006101000a81548160ff02191690836002811115611d9d57fe5b02179055508181600c9190611db3929190613350565b505050565b6000611e0785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690836002811115611e7757fe5b0217905550828260086000847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209190611edc929190613350565b50611ee681613057565b5050505050565b6001808585604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115611f3057fe5b021790555081816003868660405180838380828437808301925050509250505090815260200160405180910390209190611f6b929190613350565b50611fb984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b50505050565b600061200e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e7e565b9050600160066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561207e57fe5b021790555061208c81613057565b505050565b6120a261209d82612dfc565b612e40565b50565b6120fb83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120f683613025565b612f0f565b505050565b61219284848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061325c565b50505050565b6121ee83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121e983613025565b61325c565b505050565b61224082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e40565b5050565b61229a83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061229583612dfc565b612f0f565b505050565b60606000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123675780601f1061233c57610100808354040283529160200191612367565b820191906000526020600020905b81548152906001019060200180831161234a57829003601f168201915b505050505090506000818051906020012090505b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506040518082805190602001908083835b602083106123e457805182526020820191506020810190506020830392506123c1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902081146126ae5760006001836040518082805190602001908083835b6020831061244f578051825260208201915060208101905060208303925061242c565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083600281111561249d57fe5b0217905550604051806020016040528060008152506002836040518082805190602001908083835b602083106124e857805182526020820191506020810190506020830392506124c5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061252e9291906133d0565b50604051806020016040528060008152506003836040518082805190602001908083835b602083106125755780518252602082019150602081019050602083039250612552565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906125bb929190613450565b506000808281526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126625780601f1061263757610100808354040283529160200191612662565b820191906000526020600020905b81548152906001019060200180831161264557829003601f168201915b5050505050915060405180602001604052806000815250600080838152602001908152602001600020908051906020019061269e9291906133d0565b508180519060200120905061237b565b6040518060400160405280600481526020017f30786666000000000000000000000000000000000000000000000000000000008152506000807f0100000000000000000000000000000000000000000000000000000000000000815260200190815260200160002090805190602001906127299291906134d0565b506000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b90505b7f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612a4d576000819050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083600281111561288657fe5b02179055506040518060200160405280600081525060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906128ff9291906133d0565b506040518060200160405280600081525060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020016000209080519060200190612974929190613450565b5060056000827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b9150600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c0217905550506127ae565b7f0100000000000000000000000000000000000000000000000000000000000000600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555060405180602001604052806000815250600b9080519060200190612b1f9291906133d0565b506000600a60006101000a81548160ff02191690836002811115612b3f57fe5b02179055506000600d819055506001600e60008282540192505081905550505050565b6001600a60006101000a81548160ff02191690836002811115612b8157fe5b021790555060405180602001604052806000815250600c9080519060200190612bab929190613450565b50565b6001808383604051808383808284378083019250505092505050908152602001604051809103902060006101000a81548160ff02191690836002811115612bf157fe5b0217905550604051806020016040528060008152506003838360405180838380828437808301925050509250505090815260200160405180910390209080519060200190612c40929190613450565b50612c8e82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d11565b5050565b7f010000000000000000000000000000000000000000000000000000000000000081565b612d0c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612d0783612dfc565b61325c565b505050565b60008180519060200120905060008060008381526020019081526020016000208054600181600116156101000203166002900490501415612df8576000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000206000808381526020019081526020016000209080546001816001161561010002031660029004612daf929190613550565b50816000807f010000000000000000000000000000000000000000000000000000000000000081526020019081526020016000209080519060200190612df69291906134d0565b505b5050565b606060206040519080825280601f01601f191660200182016040528015612e325781602001600182028038833980820191505090505b509050816020820152919050565b6000600a60006101000a81548160ff02191690836002811115612e5f57fe5b021790555080600b9080519060200190612e7a9291906134d0565b5050565b60008060008090505b6004811015612f05576008810260ff60f81b858381518110612ea557fe5b602001015160f81c60f81b167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c821791508080600101915050612e87565b5080915050919050565b60006001836040518082805190602001908083835b60208310612f475780518252602082019150602081019050602083039250612f24565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff02191690836002811115612f9557fe5b0217905550806002836040518082805190602001908083835b60208310612fd15780518252602082019150602081019050602083039250612fae565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902090805190602001906130179291906134d0565b5061302182612d11565b5050565b606060405182741400000000000000000000000000000000000000001860148201526034810160405280915050919050565b600060e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561325957600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460e01b60056000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c021790555080600560007f01000000000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548163ffffffff021916908360e01c02179055505b50565b600061326783612e7e565b9050600060066000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360028111156132d757fe5b02179055508160076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002090805190602001906133419291906134d0565b5061334b81613057565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061339157803560ff19168380011785556133bf565b828001600101855582156133bf579182015b828111156133be5782358255916020019190600101906133a3565b5b5090506133cc91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061341157805160ff191683800117855561343f565b8280016001018555821561343f579182015b8281111561343e578251825591602001919060010190613423565b5b50905061344c91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061349157805160ff19168380011785556134bf565b828001600101855582156134bf579182015b828111156134be5782518255916020019190600101906134a3565b5b5090506134cc91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061351157805160ff191683800117855561353f565b8280016001018555821561353f579182015b8281111561353e578251825591602001919060010190613523565b5b50905061354c91906135d7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061358957805485556135c6565b828001600101855582156135c657600052602060002091601f016020900482015b828111156135c55782548255916001019190600101906135aa565b5b5090506135d391906135d7565b5090565b6135f991905b808211156135f55760008160009055506001016135dd565b5090565b9056fea165627a7a72305820aa3a44cb27c95db2fd1b19befff5031e2b2dd04255cd8a8deb76c84cde8479bd0029", - "sourceMap": "3610:8995:26:-;;;4584:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;4584:135:26;4643:14;;;;;;;;;;;;;;;;;4609:13;:31;4623:16;4609:31;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;4697:18;4661:13;:33;4675:18;4661:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;3610:8995;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "3610:8995:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11429:15;11487:1;11474:15;11462:27;;11575:15;11544:46;;;;;;;;:17;11562:8;;11544:27;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;11544:27:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11540:101;;;11604:21;11626:8;;11604:31;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;11604:31:26;;;;;;;;;;;;;;;;;;11597:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11540:101;11679:17;11648:48;;;;;;;;:17;11666:8;;11648:27;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;11648:27:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11644:75;;;11703:11;:9;:11::i;:::-;11644:75;11722:19;11744:20;11765:8;;11744:30;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;11744:30:26;;;;;;;;;;;;;;;;;;11722:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11836:1;11819:6;:13;:18;11815:262;;;11879:15;11848:46;;;;;;;;:17;:27;11866:8;11848:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;11844:104;;;11909:22;:32;11932:8;11909:32;;;;;;;;;;;;;;;;;11902:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11844:104;11987:17;11956:48;;;;;;;;:17;:27;11974:8;11956:27;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;;;11952:77;;;12012:11;:9;:11::i;:::-;11952:77;12042:20;:30;12063:8;12042:30;;;;;;;;;;;;;;;;;12033:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11815:262;12139:1;12122:6;:13;:18;12118:218;;;12171:15;12151:35;;;;;;;;:16;;;;;;;;;;;:35;;;;;;;;;12147:82;;;12201:21;12194:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12147:82;12257:17;12237:37;;;;;;;;:16;;;;;;;;;;;:37;;;;;;;;;12233:66;;;12282:11;:9;:11::i;:::-;12233:66;12312:19;12303:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:218;12378:1;12363:11;;:16;;;;;;;;;;;12457:1;12383:19;:70;12430:10;;12442:8;12413:38;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12413:38:26;;;12403:49;;;;;;12383:70;;;;;;;;;;;;:75;;;;;;;;;;;12536:1;12462:19;:70;12509:10;;12521:8;;12492:38;;;;;;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;12492:38:26;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12492:38:26;;;12482:49;;;;;;12462:70;;;;;;;;;;;;:75;;;;;;;;;;;12588:6;12582:13;12573:6;12567:4;12563:17;12556:40;8866:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8866:77:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8534:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8534:142:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8534:142:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8534:142:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8534:142: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;8534:142:26;;;;;;;;;;;;:::i;:::-;;3799:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3799:71:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5421:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5421:126:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5421:126:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;6021:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6021:84:26;;;:::i;:::-;;8946:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8946:201:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8946:201:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8946:201:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8946:201: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;8946:201:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9150:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9150:162:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9150:162:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9150:162:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9150:162: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;9150:162:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6441:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6441:163:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6441:163:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6441:163:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6441:163: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;6441:163:26;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6309:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6309:129:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6309:129:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6309:129:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6309:129: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;6309:129:26;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6309:129:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6309:129: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;6309:129:26;;;;;;;;;;;;:::i;:::-;;3698:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3698:50:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5652:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5652:107:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5652:107:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;8679:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8679:184:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8679:184:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8679:184:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8679:184: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;8679:184:26;;;;;;;;;;;;:::i;:::-;;7264:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7264:159:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7264:159:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7264:159:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7264:159: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;7264:159:26;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3751:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3751:45: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;3751:45:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5872:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5872:146:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5872:146:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5872:146:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5872:146: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;5872:146:26;;;;;;;;;;;;:::i;:::-;;8273:258;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8273:258:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8273:258:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8273:258:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8273:258: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;8273:258:26;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8273:258:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8273:258: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;8273:258:26;;;;;;;;;;;;:::i;:::-;;8058:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8058:212:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8058:212:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8058:212:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8058:212: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;8058:212:26;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8058:212:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8058:212: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;8058:212:26;;;;;;;;;;;;:::i;:::-;;7877:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7877:178:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7877:178:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7877:178:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7877:178: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;7877:178:26;;;;;;;;;;;;:::i;:::-;;5550:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5550:99:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5550:99:26;;;;;;;;;;;;;;;;;:::i;:::-;;6745:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6745:144:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6745:144:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6745:144:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6745:144: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;6745:144:26;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7137:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7137:124:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7137:124:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7137:124:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7137:124: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;7137:124:26;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7137:124:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7137:124: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;7137:124:26;;;;;;;;;;;;:::i;:::-;;7560:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7560:140:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7560:140:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7560:140:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7560:140: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;7560:140:26;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5327:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5327:91:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5327:91:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5327:91:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5327:91: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;5327:91:26;;;;;;;;;;;;:::i;:::-;;6607:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6607:135:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6607:135:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6607:135:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6607:135: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;6607:135:26;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9315:1291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9315:1291:26;;;:::i;:::-;;5762:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5762:107:26;;;:::i;:::-;;7703:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7703:171:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7703:171:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7703:171:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7703:171: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;7703:171:26;;;;;;;;;;;;:::i;:::-;;3873:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3873:51:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7426:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7426:131:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7426:131:26;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7426:131:26;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7426:131: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;7426:131:26;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10609:186;10642:150;10648:4;10642:150;;;10659:6;10778:4;10773:3;10767:4;10762:3;10759:1;10756;10749:4;10744:3;10740:14;10735:48;10730:53;;10679:109;;;;10609:186::o;8866:77::-;8911:4;8928:11;;8921:18;;8866:77;:::o;8534:142::-;8628:17;8602;8620:4;;8602:23;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;8602:23:26;;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8649:23;8667:4;;8649:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8649:23:26;;;;;;:17;:23::i;:::-;8534:142;;:::o;3799:71::-;3855:14;;;;;;;;;;;;;;;;;3845:25;;;;;;;;;;;;;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;;;3845:25:26;;;;;;;;;;;;;;;;3799:71;:::o;5421:126::-;5477:9;5489:8;:16;;5504:1;5489:16;;;5500:1;5489:16;5477:28;;;;5509:34;5525:17;5537:4;5525:11;:17::i;:::-;5509:15;:34::i;:::-;5421:126;;:::o;6021:84::-;6084:17;6065:16;;:36;;;;;;;;;;;;;;;;;;;;;;;;6021:84::o;8946:201::-;9019:4;9029:13;9045:19;9059:4;;9045:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;9045:19:26;;;;;;:13;:19::i;:::-;9029:35;;9075:19;:68;9122:10;;9134:6;9105:36;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9105:36:26;;;9095:47;;;;;;9075:68;;;;;;;;;;;;9068:75;;;8946:201;;;;:::o;9150:162::-;9225:4;9242:19;:66;9289:10;;9301:4;;9272:34;;;;;;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;9272:34:26;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9272:34:26;;;9262:45;;;;;;9242:66;;;;;;;;;;;;9235:73;;9150:162;;;;:::o;6441:163::-;6523:9;6535:8;:16;;6550:1;6535:16;;;6546:1;6535:16;6523:28;;;;6555:45;6576:4;;6555:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;6555:45:26;;;;;;6582:17;6594:4;6582:11;:17::i;:::-;6555:20;:45::i;:::-;6441:163;;;;:::o;6309:129::-;6398:36;6419:4;;6398:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;6398:36:26;;;;;;6425:8;;6398:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;6398:36:26;;;;;;:20;:36::i;:::-;6309:129;;;;:::o;3698:50::-;;;:::o;5652:107::-;5714:41;5730:24;5745:8;5730:14;:24::i;:::-;5714:15;:41::i;:::-;5652:107;:::o;8679:184::-;8745:13;8761:19;8775:4;;8761:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8761:19:26;;;;;;:13;:19::i;:::-;8745:35;;8812:17;8784;:25;8802:6;8784:25;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;8833:25;8851:6;8833:17;:25::i;:::-;8679:184;;;:::o;7264:159::-;7344:9;7356:8;:16;;7371:1;7356:16;;;7367:1;7356:16;7344:28;;;;7376:43;7395:4;;7376:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7376:43:26;;;;;;7401:17;7413:4;7401:11;:17::i;:::-;7376:18;:43::i;:::-;7264:159;;;;:::o;3751:45::-;;;;;;;;;;;;;;;;;;;:::o;5872:146::-;5964:15;5945:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;6007:7;;5983:21;:31;;;;;;;:::i;:::-;;5872:146;;:::o;8273:258::-;8370:13;8386:19;8400:4;;8386:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8386:19:26;;;;;;:13;:19::i;:::-;8370:35;;8437:15;8409:17;:25;8427:6;8409:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8489:7;;8456:22;:30;8479:6;8456:30;;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;8500:25;8518:6;8500:17;:25::i;:::-;8273:258;;;;;:::o;8058:212::-;8183:15;8157:17;8175:4;;8157:23;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;8157:23:26;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;8232:7;;8202:21;8224:4;;8202:27;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;8202:27:26;;;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;8243:23;8261:4;;8243:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8243:23:26;;;;;;:17;:23::i;:::-;8058:212;;;;:::o;7877:178::-;7938:13;7954:19;7968:4;;7954:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7954:19:26;;;;;;:13;:19::i;:::-;7938:35;;8005:15;7977:17;:25;7995:6;7977:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;8024:25;8042:6;8024:17;:25::i;:::-;7877:178;;;:::o;5550:99::-;5606:38;5622:21;5634:8;5622:11;:21::i;:::-;5606:15;:38::i;:::-;5550:99;:::o;6745:144::-;6833:52;6854:4;;6833:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;6833:52:26;;;;;;6860:24;6875:8;6860:14;:24::i;:::-;6833:20;:52::i;:::-;6745:144;;;:::o;7137:124::-;7223:34;7242:4;;7223:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7223:34:26;;;;;;7248:8;;7223:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7223:34:26;;;;;;:18;:34::i;:::-;7137:124;;;;:::o;7560:140::-;7646:50;7665:4;;7646:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7646:50:26;;;;;;7671:24;7686:8;7671:14;:24::i;:::-;7646:18;:50::i;:::-;7560:140;;;:::o;5327:91::-;5389:25;5405:8;;5389:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5389:25:26;;;;;;:15;:25::i;:::-;5327:91;;:::o;6607:135::-;6689:49;6710:4;;6689:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;6689:49:26;;;;;;6716:21;6728:8;6716:11;:21::i;:::-;6689:20;:49::i;:::-;6607:135;;;:::o;9315:1291::-;9380:21;9404:13;:31;9418:16;9404:31;;;;;;;;;;;9380:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9439:16;9468:8;9458:19;;;;;;9439:38;;9510:394;3855:14;;;;;;;;;;;;;;;;;3845:25;;;;;;;;;;;;;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;;;3845:25:26;;;;;;;;;;;;;;;;9516:8;:31;9510:394;;9610:15;9580:17;9598:8;9580:27;;;;;;;;;;;;;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;;;9580:27:26;;;;;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;;;;;;;9630:38;;;;;;;;;;;;:20;9651:8;9630:30;;;;;;;;;;;;;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;;;9630:30:26;;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;9673:36;;;;;;;;;;;;:21;9695:8;9673:31;;;;;;;;;;;;;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;;;9673:31:26;;;;;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:::i;:::-;;9755:13;:23;9769:8;9755:23;;;;;;;;;;;9744:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9813:28;;;;;;;;;;;;:13;:23;9827:8;9813:23;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;9890:8;9880:19;;;;;;9869:30;;9510:394;;;9957:14;;;;;;;;;;;;;;;;;9923:13;:31;9937:16;9923:31;;;;;;;;;;;:48;;;;;;;;;;;;:::i;:::-;;10009:18;10030:13;:33;10044:18;10030:33;;;;;;;;;;;;;;;;;;;;;;;;;;;10009:54;;10067:357;10088:18;10073:33;;;:11;:33;;;;10067:357;;10113:21;10137:11;10113:35;;10189:15;10153:17;:33;10171:14;10153:33;;;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;10209:44;;;;;;;;;;;;:20;:36;10230:14;10209:36;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;:::i;:::-;;10258:43;;;;;;;;;;;;:22;:38;10281:14;10258:38;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;:::i;:::-;;10320:13;:29;10334:14;10320:29;;;;;;;;;;;;;;;;;;;;;;;;;;;10306:43;;10416:3;10384:35;;:13;:29;10398:14;10384:29;;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10067:357;;;;10479:18;10443:13;:33;10457:18;10443:33;;;;;;;;;;;;;;;;;;:54;;;;;;;;;;;;;;;;;;10502:24;;;;;;;;;;;;:19;:24;;;;;;;;;;;;:::i;:::-;;10549:15;10530:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;10582:1;10568:11;:15;;;;10601:1;10587:10;;:15;;;;;;;;;;;9315:1291;;;:::o;5762:107::-;5820:15;5801:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5839:26;;;;;;;;;;;;:21;:26;;;;;;;;;;;;:::i;:::-;;5762:107::o;7703:171::-;7792:15;7766:17;7784:4;;7766:23;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;7766:23:26;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;7811:32;;;;;;;;;;;;:21;7833:4;;7811:27;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;7811:27:26;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;:::i;:::-;;7847:23;7865:4;;7847:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7847:23:26;;;;;;:17;:23::i;:::-;7703:171;;:::o;3873:51::-;;;:::o;7426:131::-;7506:47;7525:4;;7506:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7506:47:26;;;;;;7531:21;7543:8;7531:11;:21::i;:::-;7506:18;:47::i;:::-;7426:131;;;:::o;4722:250::-;4780:16;4809:4;4799:15;;;;;;4780:34;;4856:1;4822:13;:23;4836:8;4822:23;;;;;;;;;;;:30;;;;;;;;;;;;;;;;:35;4818:151;;;4890:13;:31;4904:16;4890:31;;;;;;;;;;;4864:13;:23;4878:8;4864:23;;;;;;;;;;;:57;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4960:4;4926:13;:31;4940:16;4926:31;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;4818:151;4722:250;;:::o;11256:138::-;11310:14;11347:2;11337:13;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;11337:13:26;;;;11333:17;;11387:1;11382:2;11379:1;11375:10;11368:21;11366:25;;;:::o;5191:133::-;5271:15;5252:16;;:34;;;;;;;;;;;;;;;;;;;;;;;;5312:8;5290:19;:30;;;;;;;;;;;;:::i;:::-;;5191:133;:::o;10798:191::-;10859:6;10873:10;10894:6;10903:1;10894:10;;10889:81;10910:1;10906;:5;10889:81;;;10961:1;10957;:5;10947:4;10940:11;;:1;10942;10940:4;;;;;;;;;;;;;;;;:11;10933:19;;;:30;;;;;10926:37;;;;10913:3;;;;;;;10889:81;;;;10982:3;10975:10;;;10798:191;;;:::o;6108:198::-;6219:15;6193:17;6211:4;6193:23;;;;;;;;;;;;;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;;;6193:23:26;;;;;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;;;;;;;6267:8;6238:20;6259:4;6238:26;;;;;;;;;;;;;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;;;6238:26:26;;;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;:::i;:::-;;6279:23;6297:4;6279:17;:23::i;:::-;6108:198;;:::o;10992:261::-;11049:14;11106:4;11100:11;11190:1;11144:44;11140:52;11135:2;11132:1;11128:10;11121:72;11223:2;11220:1;11216:10;11210:4;11203:24;11242:1;11237:6;;11080:170;;;;:::o;4975:213::-;5062:3;5035:30;;:13;:23;5049:8;5035:23;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;5031:154;;;5098:13;:33;5112:18;5098:33;;;;;;;;;;;;;;;;;;;;;;;;;;;5072:13;:23;5086:8;5072:23;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;5172:8;5136:13;:33;5150:18;5136:33;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5031:154;4975:213;:::o;6892:242::-;6974:13;6990:19;7004:4;6990:13;:19::i;:::-;6974:35;;7041:15;7013:17;:25;7031:6;7013:25;;;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;;;;;;;7091:8;7060:20;:28;7081:6;7060:28;;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;:::i;:::-;;7103:25;7121:6;7103:17;:25::i;:::-;6892:242;;;:::o;3610:8995::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\ninterface MockInterface {\n\t/**\n\t * @dev After calling this method, the mock will return `response` when it is called\n\t * with any calldata that is not mocked more specifically below\n\t * (e.g. using givenMethodReturn).\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenAnyReturn(bytes calldata response) external;\n\tfunction givenAnyReturnBool(bool response) external;\n\tfunction givenAnyReturnUint(uint response) external;\n\tfunction givenAnyReturnAddress(address response) external;\n\n\tfunction givenAnyRevert() external;\n\tfunction givenAnyRevertWithMessage(string calldata message) external;\n\tfunction givenAnyRunOutOfGas() external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called regardless of arguments. If the methodId and arguments\n\t * are mocked more specifically (using `givenMethodAndArguments`) the latter\n\t * will take precedence.\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenMethodReturn(bytes calldata method, bytes calldata response) external;\n\tfunction givenMethodReturnBool(bytes calldata method, bool response) external;\n\tfunction givenMethodReturnUint(bytes calldata method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes calldata method, address response) external;\n\n\tfunction givenMethodRevert(bytes calldata method) external;\n\tfunction givenMethodRevertWithMessage(bytes calldata method, string calldata message) external;\n\tfunction givenMethodRunOutOfGas(bytes calldata method) external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called with matching arguments. These exact calldataMocks will take\n\t * precedence over all other calldataMocks.\n\t * @param call ABI encoded calldata (methodId and arguments)\n\t * @param response ABI encoded response that will be returned if contract is invoked with calldata\n\t */\n\tfunction givenCalldataReturn(bytes calldata call, bytes calldata response) external;\n\tfunction givenCalldataReturnBool(bytes calldata call, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata call, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata call, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata data) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata data, string calldata message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata data) external;\n\n\t/**\n\t * @dev Returns the number of times anything has been called on this mock since last reset\n\t */\n\tfunction invocationCount() external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times the given method has been called on this mock since last reset\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t */\n\tfunction invocationCountForMethod(bytes calldata method) external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times this mock has been called with the exact calldata since last reset.\n\t * @param call ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata call) external returns (uint);\n\n\t/**\n\t * @dev Resets all mocked methods and invocation counts.\n\t */\n\t function reset() external;\n}\n\n/**\n * Implementation of the MockInterface.\n */\ncontract MockContract is MockInterface {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = hex\"01\";\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = hex\"01\";\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) calldataMocks;\n\tmapping(bytes => MockType) calldataMockTypes;\n\tmapping(bytes => bytes) calldataExpectations;\n\tmapping(bytes => string) calldataRevertMessage;\n\tmapping(bytes32 => uint) calldataInvocations;\n\n\tmapping(bytes4 => bytes4) methodIdMocks;\n\tmapping(bytes4 => MockType) methodIdMockTypes;\n\tmapping(bytes4 => bytes) methodIdExpectations;\n\tmapping(bytes4 => string) methodIdRevertMessages;\n\tmapping(bytes32 => uint) methodIdInvocations;\n\n\tMockType fallbackMockType;\n\tbytes fallbackExpectation;\n\tstring fallbackRevertMessage;\n\tuint invocations;\n\tuint resetCount;\n\n\tconstructor() public {\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackCalldataMock(bytes memory call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (calldataMocks[callHash].length == 0) {\n\t\t\tcalldataMocks[callHash] = calldataMocks[MOCKS_LIST_START];\n\t\t\tcalldataMocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackMethodIdMock(bytes4 methodId) private {\n\t\tif (methodIdMocks[methodId] == 0x0) {\n\t\t\tmethodIdMocks[methodId] = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\tfunction _givenAnyReturn(bytes memory response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes calldata response) external {\n\t\t_givenAnyReturn(response);\n\t}\n\n\tfunction givenAnyReturnBool(bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenAnyReturn(uintToBytes(flag));\n\t}\n\n\tfunction givenAnyReturnUint(uint response) external {\n\t\t_givenAnyReturn(uintToBytes(response));\t\n\t}\n\n\tfunction givenAnyReturnAddress(address response) external {\n\t\t_givenAnyReturn(addressToBytes(response));\n\t}\n\n\tfunction givenAnyRevert() external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = \"\";\n\t}\n\n\tfunction givenAnyRevertWithMessage(string calldata message) external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = message;\n\t}\n\n\tfunction givenAnyRunOutOfGas() external {\n\t\tfallbackMockType = MockType.OutOfGas;\n\t}\n\n\tfunction _givenCalldataReturn(bytes memory call, bytes memory response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes calldata call, bytes calldata response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes calldata call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenCalldataReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes calldata call, uint response) external {\n\t\t_givenCalldataReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes calldata call, address response) external {\n\t\t_givenCalldataReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes memory call, bytes memory response) private {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Return;\n\t\tmethodIdExpectations[method] = response;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenMethodReturn(bytes calldata call, bytes calldata response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes calldata call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenMethodReturnUint(bytes calldata call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes calldata call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes calldata call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes calldata call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRevertWithMessage(bytes calldata call, string calldata message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes calldata call, string calldata message) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\tmethodIdRevertMessages[method] = message;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRunOutOfGas(bytes calldata call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes calldata call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.OutOfGas;\n\t\ttrackMethodIdMock(method);\t\n\t}\n\n\tfunction invocationCount() external returns (uint) {\n\t\treturn invocations;\n\t}\n\n\tfunction invocationCountForMethod(bytes calldata call) external returns (uint) {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\treturn methodIdInvocations[keccak256(abi.encodePacked(resetCount, method))];\n\t}\n\n\tfunction invocationCountForCalldata(bytes calldata call) external returns (uint) {\n\t\treturn calldataInvocations[keccak256(abi.encodePacked(resetCount, call))];\n\t}\n\n\tfunction reset() external {\n\t\t// Reset all exact calldataMocks\n\t\tbytes memory nextMock = calldataMocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tcalldataMockTypes[nextMock] = MockType.Return;\n\t\t\tcalldataExpectations[nextMock] = hex\"\";\n\t\t\tcalldataRevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = calldataMocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tcalldataMocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any calldataMocks\n\t\tbytes4 nextAnyMock = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmethodIdMockTypes[currentAnyMock] = MockType.Return;\n\t\t\tmethodIdExpectations[currentAnyMock] = hex\"\";\n\t\t\tmethodIdRevertMessages[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = methodIdMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tmethodIdMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\n\t\tfallbackExpectation = \"\";\n\t\tfallbackMockType = MockType.Return;\n\t\tinvocations = 0;\n\t\tresetCount += 1;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tbool s;\n\t\t\tassembly {\n\t\t\t\t//expensive call to EC multiply contract\n\t\t\t\ts := call(sub(gas, 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bytesToBytes4(bytes memory b) private pure returns (bytes4) {\n \t\tbytes4 out;\n \t\tfor (uint i = 0; i < 4; i++) {\n \t\tout |= bytes4(b[i] & 0xFF) >> (i * 8);\n \t\t}\n \t\treturn out;\n\t}\n\n\tfunction addressToBytes(address a) private pure returns (bytes memory b){\n \t\tassembly {\n \tlet m := mload(0x40)\n \tmstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n \tmstore(0x40, add(m, 52))\n \tb := m\n \t\t}\n\t}\n\n\tfunction uintToBytes(uint256 x) private pure returns (bytes memory b) {\n \tb = new bytes(32);\n \tassembly { mstore(add(b, 32), x) }\n\t}\n\n\tfunction() payable external {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\n\t\t// First, check exact matching overrides\n\t\tif (calldataMockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(calldataRevertMessage[msg.data]);\n\t\t}\n\t\tif (calldataMockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = calldataExpectations[msg.data];\n\n\t\t// Then check method Id overrides\n\t\tif (result.length == 0) {\n\t\t\tif (methodIdMockTypes[methodId] == MockType.Revert) {\n\t\t\t\trevert(methodIdRevertMessages[methodId]);\n\t\t\t}\n\t\t\tif (methodIdMockTypes[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = methodIdExpectations[methodId];\n\t\t}\n\n\t\t// Last, use the fallback override\n\t\tif (result.length == 0) {\n\t\t\tif (fallbackMockType == MockType.Revert) {\n\t\t\t\trevert(fallbackRevertMessage);\n\t\t\t}\n\t\t\tif (fallbackMockType == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = fallbackExpectation;\n\t\t}\n\n\t\t// Record invocation\n\t\tinvocations += 1;\n\t\tmethodIdInvocations[keccak256(abi.encodePacked(resetCount, methodId))] += 1;\n\t\tcalldataInvocations[keccak256(abi.encodePacked(resetCount, msg.data))] += 1;\n\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n", - "sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "ast": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4351 - ], - "MockInterface": [ - 3372 - ] - }, - "id": 4352, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3228, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3372, - "linearizedBaseContracts": [ - 3372 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3233, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3230, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "357:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3229, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "356:25:26" - }, - "returnParameters": { - "id": 3232, - "nodeType": "ParameterList", - "parameters": [], - "src": "390:0:26" - }, - "scope": 3372, - "src": "333:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3235, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3238, - "src": "421:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "421:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "420:15:26" - }, - "returnParameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "444:0:26" - }, - "scope": 3372, - "src": "393:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3243, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3240, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "475:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "474:15:26" - }, - "returnParameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:0:26" - }, - "scope": 3372, - "src": "447:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3248, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3248, - "src": "532:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "532:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "531:18:26" - }, - "returnParameters": { - "id": 3247, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:0:26" - }, - "scope": 3372, - "src": "501:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3251, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3249, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:2:26" - }, - "returnParameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "596:0:26" - }, - "scope": 3372, - "src": "562:35:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3256, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3253, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3256, - "src": "634:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "634:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:25:26" - }, - "returnParameters": { - "id": 3255, - "nodeType": "ParameterList", - "parameters": [], - "src": "667:0:26" - }, - "scope": 3372, - "src": "599:69:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3257, - "nodeType": "ParameterList", - "parameters": [], - "src": "698:2:26" - }, - "returnParameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:26" - }, - "scope": 3372, - "src": "670:40:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3261, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1239:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3260, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1239:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3263, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1262:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3262, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1262:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1238:48:26" - }, - "returnParameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "1295:0:26" - }, - "scope": 3372, - "src": "1212:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3268, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1329:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1329:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3270, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1352:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1352:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:38:26" - }, - "returnParameters": { - "id": 3272, - "nodeType": "ParameterList", - "parameters": [], - "src": "1375:0:26" - }, - "scope": 3372, - "src": "1298:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3280, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1409:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1409:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1432:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1432:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1408:38:26" - }, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "1455:0:26" - }, - "scope": 3372, - "src": "1378:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3287, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3282, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1492:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3281, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1492:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1515:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1515:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:41:26" - }, - "returnParameters": { - "id": 3286, - "nodeType": "ParameterList", - "parameters": [], - "src": "1541:0:26" - }, - "scope": 3372, - "src": "1458:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3292, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3289, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3292, - "src": "1572:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3288, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1572:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1571:23:26" - }, - "returnParameters": { - "id": 3291, - "nodeType": "ParameterList", - "parameters": [], - "src": "1603:0:26" - }, - "scope": 3372, - "src": "1545:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3299, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3294, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1644:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1644:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3296, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1667:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3295, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1667:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1643:48:26" - }, - "returnParameters": { - "id": 3298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1700:0:26" - }, - "scope": 3372, - "src": "1606:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3304, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1735:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3300, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1735:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1734:23:26" - }, - "returnParameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:26" - }, - "scope": 3372, - "src": "1703:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param call ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 3311, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3306, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2183:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2183:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2204:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3307, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2204:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2182:46:26" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "2237:0:26" - }, - "scope": 3372, - "src": "2154:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3318, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2273:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2273:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2294:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2294:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2272:36:26" - }, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "2317:0:26" - }, - "scope": 3372, - "src": "2240:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3325, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3320, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2353:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3319, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2353:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3322, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2374:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3321, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2374:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2352:36:26" - }, - "returnParameters": { - "id": 3324, - "nodeType": "ParameterList", - "parameters": [], - "src": "2397:0:26" - }, - "scope": 3372, - "src": "2320:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3332, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3327, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2436:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3326, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2436:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3329, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2457:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2435:39:26" - }, - "returnParameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "2483:0:26" - }, - "scope": 3372, - "src": "2400:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3337, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3334, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "2516:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3333, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2516:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2515:21:26" - }, - "returnParameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [], - "src": "2545:0:26" - }, - "scope": 3372, - "src": "2487:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3344, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2588:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3338, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2588:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2609:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2609:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2587:46:26" - }, - "returnParameters": { - "id": 3343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2642:0:26" - }, - "scope": 3372, - "src": "2548:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3349, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3346, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "2679:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3345, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2679:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2678:21:26" - }, - "returnParameters": { - "id": 3348, - "nodeType": "ParameterList", - "parameters": [], - "src": "2708:0:26" - }, - "scope": 3372, - "src": "2645:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3354, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:2:26" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3354, - "src": "2859:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3351, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2859:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2858:6:26" - }, - "scope": 3372, - "src": "2814:51:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3361, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3356, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3152:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3355, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3152:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3151:23:26" - }, - "returnParameters": { - "id": 3360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3193:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:6:26" - }, - "scope": 3372, - "src": "3118:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param call ABI encoded calldata (methodId and arguments)", - "id": 3368, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3363, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3415:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3362, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3415:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3414:21:26" - }, - "returnParameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3454:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3454:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3453:6:26" - }, - "scope": 3372, - "src": "3379:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3371, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "3546:2:26" - }, - "returnParameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [], - "src": "3557:0:26" - }, - "scope": 3372, - "src": "3532:26:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "25:3535:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3373, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3372, - "src": "3635:13:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3372", - "typeString": "contract MockInterface" - } - }, - "id": 3374, - "nodeType": "InheritanceSpecifier", - "src": "3635:13:26" - } - ], - "contractDependencies": [ - 3372 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4351, - "linearizedBaseContracts": [ - 4351, - 3372 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3378, - "members": [ - { - "id": 3375, - "name": "Return", - "nodeType": "EnumValue", - "src": "3668:6:26" - }, - { - "id": 3376, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3676:6:26" - }, - { - "id": 3377, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3684:8:26" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3652:42:26" - }, - { - "constant": true, - "id": 3381, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3698:50:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3379, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3698:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3741:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3384, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3751:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3382, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3751:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:6:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3389, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3799:71:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3799:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3387, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "3855:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3845:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3845:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3392, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3873:51:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3390, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3396, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3989:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3395, - "keyType": { - "id": 3393, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3997:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3989:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3394, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4008:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3400, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4031:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3399, - "keyType": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4039:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4031:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3398, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4048:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4078:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3403, - "keyType": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4086:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4078:23:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3402, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4095:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3408, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4125:46:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3407, - "keyType": { - "id": 3405, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4133:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4125:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3406, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4142:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3412, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4174:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3411, - "keyType": { - "id": 3409, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4182:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4174:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3416, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4222:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3415, - "keyType": { - "id": 3413, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4230:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4222:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3414, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4240:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3420, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4264:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3419, - "keyType": { - "id": 3417, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4272:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4264:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3418, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4282:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3424, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4312:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3423, - "keyType": { - "id": 3421, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4320:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4312:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3428, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4360:48:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3427, - "keyType": { - "id": 3425, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4368:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4360:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3426, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4378:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4411:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3431, - "keyType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4419:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4411:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4430:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4459:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3433, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4459:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4487:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3435, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4487:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3438, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4515:28:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3437, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4515:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3440, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4546:16:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4546:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3442, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4565:15:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4565:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3457, - "nodeType": "Block", - "src": "4605:114:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3445, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4609:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3447, - "indexExpression": { - "argumentTypes": null, - "id": 3446, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4623:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4609:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3448, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "4643:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4609:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "4609:48:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3451, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4661:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3453, - "indexExpression": { - "argumentTypes": null, - "id": 3452, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4675:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4661:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4697:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4661:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3456, - "nodeType": "ExpressionStatement", - "src": "4661:54:26" - } - ] - }, - "documentation": null, - "id": 3458, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3443, - "nodeType": "ParameterList", - "parameters": [], - "src": "4595:2:26" - }, - "returnParameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [], - "src": "4605:0:26" - }, - "scope": 4351, - "src": "4584:135:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3491, - "nodeType": "Block", - "src": "4776:196:26", - "statements": [ - { - "assignments": [ - 3464 - ], - "declarations": [ - { - "constant": false, - "id": 3464, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "4780:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3463, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4780:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3468, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3466, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4809:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3465, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "4799:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4780:34:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3469, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4822:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3471, - "indexExpression": { - "argumentTypes": null, - "id": 3470, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4836:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4856:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4822:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3490, - "nodeType": "IfStatement", - "src": "4818:151:26", - "trueBody": { - "id": 3489, - "nodeType": "Block", - "src": "4859:110:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3475, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4864:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3477, - "indexExpression": { - "argumentTypes": null, - "id": 3476, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4878:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4864:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3478, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4890:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3480, - "indexExpression": { - "argumentTypes": null, - "id": 3479, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4904:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4890:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4864:57:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "4864:57:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3483, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4926:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3485, - "indexExpression": { - "argumentTypes": null, - "id": 3484, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4940:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4926:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3486, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4960:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4926:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3488, - "nodeType": "ExpressionStatement", - "src": "4926:38:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3460, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "4749:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4749:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:26" - }, - "returnParameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [], - "src": "4776:0:26" - }, - "scope": 4351, - "src": "4722:250:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3518, - "nodeType": "Block", - "src": "5027:161:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5035:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5049:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5035:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5062:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "5035:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3517, - "nodeType": "IfStatement", - "src": "5031:154:26", - "trueBody": { - "id": 3516, - "nodeType": "Block", - "src": "5067:118:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3502, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5072:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3504, - "indexExpression": { - "argumentTypes": null, - "id": 3503, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5086:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5072:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3505, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5098:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3507, - "indexExpression": { - "argumentTypes": null, - "id": 3506, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5112:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5098:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5072:59:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "5072:59:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3510, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5136:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3512, - "indexExpression": { - "argumentTypes": null, - "id": 3511, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5150:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5136:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3513, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5172:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5136:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "5136:44:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3519, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3494, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "5002:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3493, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5002:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5001:17:26" - }, - "returnParameters": { - "id": 3496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5027:0:26" - }, - "scope": 4351, - "src": "4975:213:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3533, - "nodeType": "Block", - "src": "5248:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3524, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5252:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3525, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5271:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5271:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5252:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "5252:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3529, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5290:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3530, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "5312:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5290:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3532, - "nodeType": "ExpressionStatement", - "src": "5290:30:26" - } - ] - }, - "documentation": null, - "id": 3534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3521, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3534, - "src": "5216:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5216:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5215:23:26" - }, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [], - "src": "5248:0:26" - }, - "scope": 4351, - "src": "5191:133:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3543, - "nodeType": "Block", - "src": "5385:33:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3536, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5389:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5389:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3542, - "nodeType": "ExpressionStatement", - "src": "5389:25:26" - } - ] - }, - "documentation": null, - "id": 3544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3536, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "5351:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3535, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5351:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5350:25:26" - }, - "returnParameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [], - "src": "5385:0:26" - }, - "scope": 4351, - "src": "5327:91:26", - "stateMutability": "nonpayable", - "superFunction": 3233, - "visibility": "external" - }, - { - "body": { - "id": 3562, - "nodeType": "Block", - "src": "5473:74:26", - "statements": [ - { - "assignments": [ - 3550 - ], - "declarations": [ - { - "constant": false, - "id": 3550, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "5477:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3549, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5477:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3551, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "5489:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5504:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5489:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5500:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5477:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3558, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "5537:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3557, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5525:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5525:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3556, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5509:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5509:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3561, - "nodeType": "ExpressionStatement", - "src": "5509:34:26" - } - ] - }, - "documentation": null, - "id": 3563, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3546, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3563, - "src": "5449:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5449:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5448:15:26" - }, - "returnParameters": { - "id": 3548, - "nodeType": "ParameterList", - "parameters": [], - "src": "5473:0:26" - }, - "scope": 4351, - "src": "5421:126:26", - "stateMutability": "nonpayable", - "superFunction": 3238, - "visibility": "external" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "5602:47:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3570, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3565, - "src": "5634:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3569, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5622:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5622:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3568, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5606:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:38:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3573, - "nodeType": "ExpressionStatement", - "src": "5606:38:26" - } - ] - }, - "documentation": null, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3565, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3575, - "src": "5578:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5578:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5577:15:26" - }, - "returnParameters": { - "id": 3567, - "nodeType": "ParameterList", - "parameters": [], - "src": "5602:0:26" - }, - "scope": 4351, - "src": "5550:99:26", - "stateMutability": "nonpayable", - "superFunction": 3243, - "visibility": "external" - }, - { - "body": { - "id": 3586, - "nodeType": "Block", - "src": "5710:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3582, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3577, - "src": "5745:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3581, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "5730:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3580, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5714:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3585, - "nodeType": "ExpressionStatement", - "src": "5714:41:26" - } - ] - }, - "documentation": null, - "id": 3587, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3577, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3587, - "src": "5683:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5683:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5682:18:26" - }, - "returnParameters": { - "id": 3579, - "nodeType": "ParameterList", - "parameters": [], - "src": "5710:0:26" - }, - "scope": 4351, - "src": "5652:107:26", - "stateMutability": "nonpayable", - "superFunction": 3248, - "visibility": "external" - }, - { - "body": { - "id": 3599, - "nodeType": "Block", - "src": "5797:72:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3590, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5801:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5820:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5820:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5801:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3594, - "nodeType": "ExpressionStatement", - "src": "5801:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3595, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5839:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5863:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5839:26:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5839:26:26" - } - ] - }, - "documentation": null, - "id": 3600, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [], - "src": "5785:2:26" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "5797:0:26" - }, - "scope": 4351, - "src": "5762:107:26", - "stateMutability": "nonpayable", - "superFunction": 3251, - "visibility": "external" - }, - { - "body": { - "id": 3614, - "nodeType": "Block", - "src": "5941:77:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3605, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5945:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5964:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5964:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5945:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3609, - "nodeType": "ExpressionStatement", - "src": "5945:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3610, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5983:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3611, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "6007:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5983:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "5983:31:26" - } - ] - }, - "documentation": null, - "id": 3615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3602, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3615, - "src": "5907:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3601, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5907:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5906:25:26" - }, - "returnParameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [], - "src": "5941:0:26" - }, - "scope": 4351, - "src": "5872:146:26", - "stateMutability": "nonpayable", - "superFunction": 3256, - "visibility": "external" - }, - { - "body": { - "id": 3623, - "nodeType": "Block", - "src": "6061:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3618, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "6065:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3619, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6084:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6084:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6065:36:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3622, - "nodeType": "ExpressionStatement", - "src": "6065:36:26" - } - ] - }, - "documentation": null, - "id": 3624, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3616, - "nodeType": "ParameterList", - "parameters": [], - "src": "6049:2:26" - }, - "returnParameters": { - "id": 3617, - "nodeType": "ParameterList", - "parameters": [], - "src": "6061:0:26" - }, - "scope": 4351, - "src": "6021:84:26", - "stateMutability": "nonpayable", - "superFunction": 3259, - "visibility": "external" - }, - { - "body": { - "id": 3648, - "nodeType": "Block", - "src": "6189:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3631, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "6193:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3633, - "indexExpression": { - "argumentTypes": null, - "id": 3632, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6211:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6193:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3634, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6219:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6219:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6193:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "6193:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3638, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "6238:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "id": 3639, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6259:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6238:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3641, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3628, - "src": "6267:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6238:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "6238:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6297:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3644, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "6279:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6279:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "6279:23:26" - } - ] - }, - "documentation": null, - "id": 3649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3626, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6138:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3628, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6157:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3627, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6157:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6137:42:26" - }, - "returnParameters": { - "id": 3630, - "nodeType": "ParameterList", - "parameters": [], - "src": "6189:0:26" - }, - "scope": 4351, - "src": "6108:198:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3661, - "nodeType": "Block", - "src": "6394:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3657, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "6419:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3658, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3653, - "src": "6425:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3656, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6398:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6398:36:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3660, - "nodeType": "ExpressionStatement", - "src": "6398:36:26" - } - ] - }, - "documentation": null, - "id": 3662, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6338:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6338:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6359:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3652, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6359:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6337:46:26" - }, - "returnParameters": { - "id": 3655, - "nodeType": "ParameterList", - "parameters": [], - "src": "6394:0:26" - }, - "scope": 4351, - "src": "6309:129:26", - "stateMutability": "nonpayable", - "superFunction": 3311, - "visibility": "external" - }, - { - "body": { - "id": 3683, - "nodeType": "Block", - "src": "6519:85:26", - "statements": [ - { - "assignments": [ - 3670 - ], - "declarations": [ - { - "constant": false, - "id": 3670, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3683, - "src": "6523:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3669, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6523:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3675, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3671, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3666, - "src": "6535:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6550:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6535:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6546:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6523:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3677, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3664, - "src": "6576:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3679, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "6594:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3678, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6582:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6582:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3676, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6555:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6555:45:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3682, - "nodeType": "ExpressionStatement", - "src": "6555:45:26" - } - ] - }, - "documentation": null, - "id": 3684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3664, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6474:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3663, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6474:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3666, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6495:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3665, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6495:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:36:26" - }, - "returnParameters": { - "id": 3668, - "nodeType": "ParameterList", - "parameters": [], - "src": "6519:0:26" - }, - "scope": 4351, - "src": "6441:163:26", - "stateMutability": "nonpayable", - "superFunction": 3318, - "visibility": "external" - }, - { - "body": { - "id": 3698, - "nodeType": "Block", - "src": "6685:57:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3686, - "src": "6710:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3694, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "6728:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3693, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6716:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6716:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3691, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6689:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6689:49:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "6689:49:26" - } - ] - }, - "documentation": null, - "id": 3699, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3686, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6640:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3685, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6640:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3688, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6661:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3687, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6661:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6639:36:26" - }, - "returnParameters": { - "id": 3690, - "nodeType": "ParameterList", - "parameters": [], - "src": "6685:0:26" - }, - "scope": 4351, - "src": "6607:135:26", - "stateMutability": "nonpayable", - "superFunction": 3325, - "visibility": "external" - }, - { - "body": { - "id": 3713, - "nodeType": "Block", - "src": "6829:60:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "6854:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6875:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3708, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "6860:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6860:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3706, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6833:52:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3712, - "nodeType": "ExpressionStatement", - "src": "6833:52:26" - } - ] - }, - "documentation": null, - "id": 3714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6781:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3700, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6781:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3703, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6802:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6802:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6780:39:26" - }, - "returnParameters": { - "id": 3705, - "nodeType": "ParameterList", - "parameters": [], - "src": "6829:0:26" - }, - "scope": 4351, - "src": "6745:144:26", - "stateMutability": "nonpayable", - "superFunction": 3332, - "visibility": "external" - }, - { - "body": { - "id": 3744, - "nodeType": "Block", - "src": "6970:164:26", - "statements": [ - { - "assignments": [ - 3722 - ], - "declarations": [ - { - "constant": false, - "id": 3722, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "6974:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3721, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6974:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3724, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7004:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3723, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "6990:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6974:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7013:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7031:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7013:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7041:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7041:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7013:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "7013:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7060:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7081:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7060:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3737, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3718, - "src": "7091:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "7060:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "7060:39:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3741, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7121:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3740, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "7103:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7103:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3743, - "nodeType": "ExpressionStatement", - "src": "7103:25:26" - } - ] - }, - "documentation": null, - "id": 3745, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6920:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3715, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6920:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3718, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6939:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3717, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6939:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6919:42:26" - }, - "returnParameters": { - "id": 3720, - "nodeType": "ParameterList", - "parameters": [], - "src": "6970:0:26" - }, - "scope": 4351, - "src": "6892:242:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3757, - "nodeType": "Block", - "src": "7219:42:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3747, - "src": "7242:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3754, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3749, - "src": "7248:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3752, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7223:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7223:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "7223:34:26" - } - ] - }, - "documentation": null, - "id": 3758, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3747, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7164:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7164:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3749, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7185:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3748, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7185:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7163:46:26" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "7219:0:26" - }, - "scope": 4351, - "src": "7137:124:26", - "stateMutability": "nonpayable", - "superFunction": 3266, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "7340:83:26", - "statements": [ - { - "assignments": [ - 3766 - ], - "declarations": [ - { - "constant": false, - "id": 3766, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3779, - "src": "7344:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7344:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3771, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3767, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7356:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7371:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7356:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7367:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7344:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3773, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3760, - "src": "7395:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3775, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "7413:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3774, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7401:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3772, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7376:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:43:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "7376:43:26" - } - ] - }, - "documentation": null, - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3760, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7295:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3759, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7295:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7316:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3761, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7316:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7294:36:26" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7340:0:26" - }, - "scope": 4351, - "src": "7264:159:26", - "stateMutability": "nonpayable", - "superFunction": 3273, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "7502:55:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3788, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "7525:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3790, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3784, - "src": "7543:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3789, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7531:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7531:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3787, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7506:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7506:47:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "7506:47:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7457:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3781, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7457:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3784, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7478:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7478:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7456:36:26" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "7502:0:26" - }, - "scope": 4351, - "src": "7426:131:26", - "stateMutability": "nonpayable", - "superFunction": 3280, - "visibility": "external" - }, - { - "body": { - "id": 3809, - "nodeType": "Block", - "src": "7642:58:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3803, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "7665:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3805, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "7686:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3804, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "7671:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7671:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3802, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7646:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7646:50:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3808, - "nodeType": "ExpressionStatement", - "src": "7646:50:26" - } - ] - }, - "documentation": null, - "id": 3810, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7594:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7594:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7615:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7615:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7593:39:26" - }, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [], - "src": "7642:0:26" - }, - "scope": 4351, - "src": "7560:140:26", - "stateMutability": "nonpayable", - "superFunction": 3287, - "visibility": "external" - }, - { - "body": { - "id": 3832, - "nodeType": "Block", - "src": "7762:112:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3815, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "7766:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3817, - "indexExpression": { - "argumentTypes": null, - "id": 3816, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7766:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7792:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7792:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7766:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3821, - "nodeType": "ExpressionStatement", - "src": "7766:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "7811:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7833:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7811:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7841:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7811:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3827, - "nodeType": "ExpressionStatement", - "src": "7811:32:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3829, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7865:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3828, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "7847:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7847:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3831, - "nodeType": "ExpressionStatement", - "src": "7847:23:26" - } - ] - }, - "documentation": null, - "id": 3833, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3812, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "7732:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3811, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7732:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7731:21:26" - }, - "returnParameters": { - "id": 3814, - "nodeType": "ParameterList", - "parameters": [], - "src": "7762:0:26" - }, - "scope": 4351, - "src": "7703:171:26", - "stateMutability": "nonpayable", - "superFunction": 3337, - "visibility": "external" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "7934:121:26", - "statements": [ - { - "assignments": [ - 3839 - ], - "declarations": [ - { - "constant": false, - "id": 3839, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "7938:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3838, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7938:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3843, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7968:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3840, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "7954:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7954:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7938:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7977:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "id": 3845, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "7995:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7977:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8005:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8005:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7977:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3850, - "nodeType": "ExpressionStatement", - "src": "7977:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3852, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "8042:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3851, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8024:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8024:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3854, - "nodeType": "ExpressionStatement", - "src": "8024:25:26" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3835, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "7904:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3834, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7904:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7903:21:26" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [], - "src": "7934:0:26" - }, - "scope": 4351, - "src": "7877:178:26", - "stateMutability": "nonpayable", - "superFunction": 3292, - "visibility": "external" - }, - { - "body": { - "id": 3880, - "nodeType": "Block", - "src": "8153:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3863, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8157:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3865, - "indexExpression": { - "argumentTypes": null, - "id": 3864, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8175:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8157:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3866, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8183:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8157:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3869, - "nodeType": "ExpressionStatement", - "src": "8157:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3870, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "8202:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3872, - "indexExpression": { - "argumentTypes": null, - "id": 3871, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8224:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8202:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3873, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "8232:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8202:37:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3875, - "nodeType": "ExpressionStatement", - "src": "8202:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3877, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8261:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3876, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8243:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8243:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3879, - "nodeType": "ExpressionStatement", - "src": "8243:23:26" - } - ] - }, - "documentation": null, - "id": 3881, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8098:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3857, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8098:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8119:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3859, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8119:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8097:46:26" - }, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "8153:0:26" - }, - "scope": 4351, - "src": "8058:212:26", - "stateMutability": "nonpayable", - "superFunction": 3344, - "visibility": "external" - }, - { - "body": { - "id": 3911, - "nodeType": "Block", - "src": "8366:165:26", - "statements": [ - { - "assignments": [ - 3889 - ], - "declarations": [ - { - "constant": false, - "id": 3889, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3911, - "src": "8370:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3888, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3893, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3891, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3883, - "src": "8400:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3890, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8386:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8386:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8409:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3896, - "indexExpression": { - "argumentTypes": null, - "id": 3895, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8427:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8409:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3897, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8437:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8437:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8409:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3900, - "nodeType": "ExpressionStatement", - "src": "8409:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8456:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3903, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8479:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8456:30:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3904, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "8489:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8456:40:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3906, - "nodeType": "ExpressionStatement", - "src": "8456:40:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3908, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8518:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3907, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8500:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8500:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3910, - "nodeType": "ExpressionStatement", - "src": "8500:25:26" - } - ] - }, - "documentation": null, - "id": 3912, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3883, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8311:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3882, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8311:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3885, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8332:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3884, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8332:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8310:46:26" - }, - "returnParameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [], - "src": "8366:0:26" - }, - "scope": 4351, - "src": "8273:258:26", - "stateMutability": "nonpayable", - "superFunction": 3299, - "visibility": "external" - }, - { - "body": { - "id": 3928, - "nodeType": "Block", - "src": "8598:78:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3917, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8602:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3919, - "indexExpression": { - "argumentTypes": null, - "id": 3918, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8620:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8602:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3920, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8628:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8628:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8602:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3923, - "nodeType": "ExpressionStatement", - "src": "8602:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3925, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8667:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3924, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8649:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8649:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3927, - "nodeType": "ExpressionStatement", - "src": "8649:23:26" - } - ] - }, - "documentation": null, - "id": 3929, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3914, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3929, - "src": "8568:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3913, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8568:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8567:21:26" - }, - "returnParameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [], - "src": "8598:0:26" - }, - "scope": 4351, - "src": "8534:142:26", - "stateMutability": "nonpayable", - "superFunction": 3349, - "visibility": "external" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "8741:122:26", - "statements": [ - { - "assignments": [ - 3935 - ], - "declarations": [ - { - "constant": false, - "id": 3935, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3951, - "src": "8745:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3934, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8745:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3939, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3937, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3931, - "src": "8775:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3936, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8761:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8761:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8745:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3940, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8784:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3942, - "indexExpression": { - "argumentTypes": null, - "id": 3941, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8802:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8784:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8812:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8812:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8784:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3946, - "nodeType": "ExpressionStatement", - "src": "8784:45:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8851:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3947, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8833:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8833:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "8833:25:26" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3931, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "8711:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8711:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8710:21:26" - }, - "returnParameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "8741:0:26" - }, - "scope": 4351, - "src": "8679:184:26", - "stateMutability": "nonpayable", - "superFunction": 3304, - "visibility": "external" - }, - { - "body": { - "id": 3959, - "nodeType": "Block", - "src": "8917:26:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3957, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "8928:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3956, - "id": 3958, - "nodeType": "Return", - "src": "8921:18:26" - } - ] - }, - "documentation": null, - "id": 3960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3953, - "nodeType": "ParameterList", - "parameters": [], - "src": "8890:2:26" - }, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3960, - "src": "8911:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3954, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8911:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8910:6:26" - }, - "scope": 4351, - "src": "8866:77:26", - "stateMutability": "nonpayable", - "superFunction": 3354, - "visibility": "external" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "9025:122:26", - "statements": [ - { - "assignments": [ - 3968 - ], - "declarations": [ - { - "constant": false, - "id": 3968, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3983, - "src": "9029:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3967, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9029:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3972, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3970, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "9059:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3969, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "9045:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9045:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9029:35:26" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3973, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "9075:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3977, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9122:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3978, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "9134:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3975, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9105:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9105:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9105:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3974, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9095:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:47:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9075:68:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3966, - "id": 3982, - "nodeType": "Return", - "src": "9068:75:26" - } - ] - }, - "documentation": null, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3962, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "8980:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8980:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8979:21:26" - }, - "returnParameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3965, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "9019:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3964, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9019:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9018:6:26" - }, - "scope": 4351, - "src": "8946:201:26", - "stateMutability": "nonpayable", - "superFunction": 3361, - "visibility": "external" - }, - { - "body": { - "id": 4001, - "nodeType": "Block", - "src": "9231:81:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3991, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "9242:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3999, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3995, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9289:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3996, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "9301:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3993, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9272:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9272:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9272:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3992, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9262:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9262:45:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9242:66:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3990, - "id": 4000, - "nodeType": "Return", - "src": "9235:73:26" - } - ] - }, - "documentation": null, - "id": 4002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3986, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9186:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3985, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9186:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9185:21:26" - }, - "returnParameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3989, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9225:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9225:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9224:6:26" - }, - "scope": 4351, - "src": "9150:162:26", - "stateMutability": "nonpayable", - "superFunction": 3368, - "visibility": "external" - }, - { - "body": { - "id": 4134, - "nodeType": "Block", - "src": "9341:1265:26", - "statements": [ - { - "assignments": [ - 4006 - ], - "declarations": [ - { - "constant": false, - "id": 4006, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9380:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4005, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9380:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4010, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4007, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9404:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4009, - "indexExpression": { - "argumentTypes": null, - "id": 4008, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9418:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9404:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9380:55:26" - }, - { - "assignments": [ - 4012 - ], - "declarations": [ - { - "constant": false, - "id": 4012, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9439:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4011, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9439:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4016, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4014, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9468:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4013, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9458:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9458:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9439:38:26" - }, - { - "body": { - "id": 4057, - "nodeType": "Block", - "src": "9549:355:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4020, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "9580:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4022, - "indexExpression": { - "argumentTypes": null, - "id": 4021, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9598:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9580:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "9610:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9610:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9580:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4026, - "nodeType": "ExpressionStatement", - "src": "9580:45:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4027, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "9630:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4029, - "indexExpression": { - "argumentTypes": null, - "id": 4028, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9651:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9630:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9630:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4032, - "nodeType": "ExpressionStatement", - "src": "9630:38:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4033, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "9673:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4035, - "indexExpression": { - "argumentTypes": null, - "id": 4034, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9695:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9673:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9707:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9673:36:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4038, - "nodeType": "ExpressionStatement", - "src": "9673:36:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4039, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9744:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4040, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9755:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4042, - "indexExpression": { - "argumentTypes": null, - "id": 4041, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9769:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9755:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9744:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4044, - "nodeType": "ExpressionStatement", - "src": "9744:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4045, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9813:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4047, - "indexExpression": { - "argumentTypes": null, - "id": 4046, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9827:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9839:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4050, - "nodeType": "ExpressionStatement", - "src": "9813:28:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4051, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9869:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4053, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9890:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4052, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9880:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9880:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9869:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 4056, - "nodeType": "ExpressionStatement", - "src": "9869:30:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4017, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9516:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4018, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "9528:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9516:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4058, - "nodeType": "WhileStatement", - "src": "9510:394:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4059, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9923:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4061, - "indexExpression": { - "argumentTypes": null, - "id": 4060, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9937:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9923:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4062, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "9957:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9923:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4064, - "nodeType": "ExpressionStatement", - "src": "9923:48:26" - }, - { - "assignments": [ - 4066 - ], - "declarations": [ - { - "constant": false, - "id": 4066, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "10009:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4065, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4070, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4067, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10030:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4069, - "indexExpression": { - "argumentTypes": null, - "id": 4068, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10044:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10030:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10009:54:26" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "10108:316:26", - "statements": [ - { - "assignments": [ - 4075 - ], - "declarations": [ - { - "constant": false, - "id": 4075, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "10113:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10113:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4077, - "initialValue": { - "argumentTypes": null, - "id": 4076, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10137:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10113:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4078, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "10153:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4080, - "indexExpression": { - "argumentTypes": null, - "id": 4079, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10171:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10153:33:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4081, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10189:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10189:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10153:51:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "10153:51:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4085, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "10209:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4087, - "indexExpression": { - "argumentTypes": null, - "id": 4086, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10230:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10209:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10209:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4090, - "nodeType": "ExpressionStatement", - "src": "10209:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4091, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "10258:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4093, - "indexExpression": { - "argumentTypes": null, - "id": 4092, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10281:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10258:38:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10299:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10258:43:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4096, - "nodeType": "ExpressionStatement", - "src": "10258:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4097, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10306:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4098, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10320:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4100, - "indexExpression": { - "argumentTypes": null, - "id": 4099, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10334:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10320:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10306:43:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4102, - "nodeType": "ExpressionStatement", - "src": "10306:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4103, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10384:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4105, - "indexExpression": { - "argumentTypes": null, - "id": 4104, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10398:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10384:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10416:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "10384:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4108, - "nodeType": "ExpressionStatement", - "src": "10384:35:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4071, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10073:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4072, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10088:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10073:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4110, - "nodeType": "WhileStatement", - "src": "10067:357:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4111, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10443:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4113, - "indexExpression": { - "argumentTypes": null, - "id": 4112, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10457:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10443:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4114, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10479:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10443:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4116, - "nodeType": "ExpressionStatement", - "src": "10443:54:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4117, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "10502:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10524:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10502:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4120, - "nodeType": "ExpressionStatement", - "src": "10502:24:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4121, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "10530:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4122, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10549:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10549:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10530:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4125, - "nodeType": "ExpressionStatement", - "src": "10530:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4126, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "10568:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10582:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10568:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4129, - "nodeType": "ExpressionStatement", - "src": "10568:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4130, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "10587:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10601:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10587:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4133, - "nodeType": "ExpressionStatement", - "src": "10587:15:26" - } - ] - }, - "documentation": null, - "id": 4135, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4003, - "nodeType": "ParameterList", - "parameters": [], - "src": "9329:2:26" - }, - "returnParameters": { - "id": 4004, - "nodeType": "ParameterList", - "parameters": [], - "src": "9341:0:26" - }, - "scope": 4351, - "src": "9315:1291:26", - "stateMutability": "nonpayable", - "superFunction": 3371, - "visibility": "external" - }, - { - "body": { - "id": 4145, - "nodeType": "Block", - "src": "10638:157:26", - "statements": [ - { - "body": { - "id": 4143, - "nodeType": "Block", - "src": "10654:138:26", - "statements": [ - { - "assignments": [ - 4140 - ], - "declarations": [ - { - "constant": false, - "id": 4140, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 4143, - "src": "10659:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4139, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10659:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4141, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10659:6:26" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 4140, - "isOffset": false, - "isSlot": false, - "src": "10730:1:26", - "valueSize": 1 - } - } - ], - "id": 4142, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10670:122:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10648:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 4144, - "nodeType": "WhileStatement", - "src": "10642:150:26" - } - ] - }, - "documentation": null, - "id": 4146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4136, - "nodeType": "ParameterList", - "parameters": [], - "src": "10627:2:26" - }, - "returnParameters": { - "id": 4137, - "nodeType": "ParameterList", - "parameters": [], - "src": "10638:0:26" - }, - "scope": 4351, - "src": "10609:186:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4185, - "nodeType": "Block", - "src": "10867:122:26", - "statements": [ - { - "assignments": [ - 4154 - ], - "declarations": [ - { - "constant": false, - "id": 4154, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 4185, - "src": "10873:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4153, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10873:10:26" - }, - { - "body": { - "id": 4181, - "nodeType": "Block", - "src": "10918:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4166, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10926:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4168, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4148, - "src": "10940:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4170, - "indexExpression": { - "argumentTypes": null, - "id": 4169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10942:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10940:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10947:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10940:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10933:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10933:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4174, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10957:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10961:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10957:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4177, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10933:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10926:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4180, - "nodeType": "ExpressionStatement", - "src": "10926:37:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4160, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10906:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10910:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10906:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4182, - "initializationExpression": { - "assignments": [ - 4157 - ], - "declarations": [ - { - "constant": false, - "id": 4157, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4182, - "src": "10894:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10894:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4159, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10903:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10894:10:26" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10913:3:26", - "subExpression": { - "argumentTypes": null, - "id": 4163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10913:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4165, - "nodeType": "ExpressionStatement", - "src": "10913:3:26" - }, - "nodeType": "ForStatement", - "src": "10889:81:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4183, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10982:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 4152, - "id": 4184, - "nodeType": "Return", - "src": "10975:10:26" - } - ] - }, - "documentation": null, - "id": 4186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4148, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10821:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10821:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10820:16:26" - }, - "returnParameters": { - "id": 4152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10859:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4150, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10859:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10858:8:26" - }, - "scope": 4351, - "src": "10798:191:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4194, - "nodeType": "Block", - "src": "11064:189:26", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 4191, - "isOffset": false, - "isSlot": false, - "src": "11237:1:26", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 4188, - "isOffset": false, - "isSlot": false, - "src": "11190:1:26", - "valueSize": 1 - } - } - ], - "id": 4193, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "11071:182:26" - } - ] - }, - "documentation": null, - "id": 4195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4188, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11016:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11016:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11015:11:26" - }, - "returnParameters": { - "id": 4192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4191, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11049:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4190, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11049:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11048:16:26" - }, - "scope": 4351, - "src": "10992:261:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4210, - "nodeType": "Block", - "src": "11326:68:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4202, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4200, - "src": "11333:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 4205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11347:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11337:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4203, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11341:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11337:13:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "11333:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4208, - "nodeType": "ExpressionStatement", - "src": "11333:17:26" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 4197, - "isOffset": false, - "isSlot": false, - "src": "11387:1:26", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 4200, - "isOffset": false, - "isSlot": false, - "src": "11379:1:26", - "valueSize": 1 - } - } - ], - "id": 4209, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "11357:37:26" - } - ] - }, - "documentation": null, - "id": 4211, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4197, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11277:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11277:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11276:11:26" - }, - "returnParameters": { - "id": 4201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4200, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11310:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4199, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11310:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11309:16:26" - }, - "scope": 4351, - "src": "11256:138:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4349, - "nodeType": "Block", - "src": "11425:1178:26", - "statements": [ - { - "assignments": [ - 4215 - ], - "declarations": [ - { - "constant": false, - "id": 4215, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11429:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4214, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11429:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4216, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11429:15:26" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 4215, - "isOffset": false, - "isSlot": false, - "src": "11462:8:26", - "valueSize": 1 - } - } - ], - "id": 4217, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11448:94:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4218, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11544:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11562:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11544:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4222, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11575:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11575:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11544:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4233, - "nodeType": "IfStatement", - "src": "11540:101:26", - "trueBody": { - "id": 4232, - "nodeType": "Block", - "src": "11592:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4226, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "11604:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4229, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4227, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11626:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11626:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11604:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4225, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11597:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11597:39:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4231, - "nodeType": "ExpressionStatement", - "src": "11597:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4234, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11648:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4237, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4235, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11666:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11666:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11648:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4238, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11679:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11679:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11648:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4245, - "nodeType": "IfStatement", - "src": "11644:75:26", - "trueBody": { - "id": 4244, - "nodeType": "Block", - "src": "11698:21:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4241, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "11703:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11703:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4243, - "nodeType": "ExpressionStatement", - "src": "11703:11:26" - } - ] - } - }, - { - "assignments": [ - 4247 - ], - "declarations": [ - { - "constant": false, - "id": 4247, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11722:19:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4246, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11722:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4248, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "11744:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11765:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11765:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11744:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11722:52:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4253, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "11819:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11819:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11836:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11819:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4289, - "nodeType": "IfStatement", - "src": "11815:262:26", - "trueBody": { - "id": 4288, - "nodeType": "Block", - "src": "11839:238:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4257, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11848:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4259, - "indexExpression": { - "argumentTypes": null, - "id": 4258, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11866:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11848:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4260, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11879:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11879:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11848:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4270, - "nodeType": "IfStatement", - "src": "11844:104:26", - "trueBody": { - "id": 4269, - "nodeType": "Block", - "src": "11896:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4264, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "11909:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4266, - "indexExpression": { - "argumentTypes": null, - "id": 4265, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11932:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11909:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4263, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11902:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11902:40:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4268, - "nodeType": "ExpressionStatement", - "src": "11902:40:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11956:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11974:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11956:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4274, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11987:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11987:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11956:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4281, - "nodeType": "IfStatement", - "src": "11952:77:26", - "trueBody": { - "id": 4280, - "nodeType": "Block", - "src": "12006:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4277, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12012:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12012:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4279, - "nodeType": "ExpressionStatement", - "src": "12012:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4282, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12033:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4283, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "12042:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4285, - "indexExpression": { - "argumentTypes": null, - "id": 4284, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12063:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12042:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12033:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4287, - "nodeType": "ExpressionStatement", - "src": "12033:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4290, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12122:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12122:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12139:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12122:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4318, - "nodeType": "IfStatement", - "src": "12118:218:26", - "trueBody": { - "id": 4317, - "nodeType": "Block", - "src": "12142:194:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4294, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12151:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4295, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12171:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12171:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12151:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4303, - "nodeType": "IfStatement", - "src": "12147:82:26", - "trueBody": { - "id": 4302, - "nodeType": "Block", - "src": "12188:41:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4299, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "12201:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4298, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12194:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12194:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4301, - "nodeType": "ExpressionStatement", - "src": "12194:29:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4304, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12237:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4305, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12257:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12257:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12237:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4312, - "nodeType": "IfStatement", - "src": "12233:66:26", - "trueBody": { - "id": 4311, - "nodeType": "Block", - "src": "12276:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4308, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12282:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12282:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "12282:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4313, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12303:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4314, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "12312:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12303:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4316, - "nodeType": "ExpressionStatement", - "src": "12303:28:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4319, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "12363:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12378:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12363:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4322, - "nodeType": "ExpressionStatement", - "src": "12363:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "12383:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4331, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12430:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4328, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12442:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 4325, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12413:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12413:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12413:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4324, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12403:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12403:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12383:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12457:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12383:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4334, - "nodeType": "ExpressionStatement", - "src": "12383:75:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4335, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "12462:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4339, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12509:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12521:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12521:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4337, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12492:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12492:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12492:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4336, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12482:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12482:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12462:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12536:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12462:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4347, - "nodeType": "ExpressionStatement", - "src": "12462:75:26" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12588:6:26", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12573:6:26", - "valueSize": 1 - } - } - ], - "id": 4348, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12542:61:26" - } - ] - }, - "documentation": null, - "id": 4350, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [], - "src": "11405:2:26" - }, - "returnParameters": { - "id": 4213, - "nodeType": "ParameterList", - "parameters": [], - "src": "11425:0:26" - }, - "scope": 4351, - "src": "11397:1206:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "3610:8995:26" - } - ], - "src": "0:12606:26" - }, - "legacyAST": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4351 - ], - "MockInterface": [ - 3372 - ] - }, - "id": 4352, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3228, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3372, - "linearizedBaseContracts": [ - 3372 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3233, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3230, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "357:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3229, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "356:25:26" - }, - "returnParameters": { - "id": 3232, - "nodeType": "ParameterList", - "parameters": [], - "src": "390:0:26" - }, - "scope": 3372, - "src": "333:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3235, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3238, - "src": "421:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "421:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "420:15:26" - }, - "returnParameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "444:0:26" - }, - "scope": 3372, - "src": "393:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3243, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3240, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "475:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "474:15:26" - }, - "returnParameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:0:26" - }, - "scope": 3372, - "src": "447:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3248, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3248, - "src": "532:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "532:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "531:18:26" - }, - "returnParameters": { - "id": 3247, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:0:26" - }, - "scope": 3372, - "src": "501:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3251, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3249, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:2:26" - }, - "returnParameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "596:0:26" - }, - "scope": 3372, - "src": "562:35:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3256, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3253, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3256, - "src": "634:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "634:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:25:26" - }, - "returnParameters": { - "id": 3255, - "nodeType": "ParameterList", - "parameters": [], - "src": "667:0:26" - }, - "scope": 3372, - "src": "599:69:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3257, - "nodeType": "ParameterList", - "parameters": [], - "src": "698:2:26" - }, - "returnParameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:26" - }, - "scope": 3372, - "src": "670:40:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3261, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1239:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3260, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1239:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3263, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1262:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3262, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1262:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1238:48:26" - }, - "returnParameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "1295:0:26" - }, - "scope": 3372, - "src": "1212:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3268, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1329:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1329:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3270, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1352:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1352:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:38:26" - }, - "returnParameters": { - "id": 3272, - "nodeType": "ParameterList", - "parameters": [], - "src": "1375:0:26" - }, - "scope": 3372, - "src": "1298:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3280, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1409:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1409:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1432:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1432:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1408:38:26" - }, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "1455:0:26" - }, - "scope": 3372, - "src": "1378:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3287, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3282, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1492:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3281, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1492:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1515:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1515:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:41:26" - }, - "returnParameters": { - "id": 3286, - "nodeType": "ParameterList", - "parameters": [], - "src": "1541:0:26" - }, - "scope": 3372, - "src": "1458:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3292, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3289, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3292, - "src": "1572:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3288, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1572:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1571:23:26" - }, - "returnParameters": { - "id": 3291, - "nodeType": "ParameterList", - "parameters": [], - "src": "1603:0:26" - }, - "scope": 3372, - "src": "1545:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3299, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3294, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1644:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1644:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3296, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1667:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3295, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1667:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1643:48:26" - }, - "returnParameters": { - "id": 3298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1700:0:26" - }, - "scope": 3372, - "src": "1606:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3304, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1735:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3300, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1735:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1734:23:26" - }, - "returnParameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:26" - }, - "scope": 3372, - "src": "1703:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param call ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 3311, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3306, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2183:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2183:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2204:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3307, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2204:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2182:46:26" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "2237:0:26" - }, - "scope": 3372, - "src": "2154:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3318, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2273:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2273:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2294:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2294:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2272:36:26" - }, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "2317:0:26" - }, - "scope": 3372, - "src": "2240:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3325, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3320, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2353:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3319, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2353:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3322, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2374:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3321, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2374:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2352:36:26" - }, - "returnParameters": { - "id": 3324, - "nodeType": "ParameterList", - "parameters": [], - "src": "2397:0:26" - }, - "scope": 3372, - "src": "2320:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3332, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3327, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2436:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3326, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2436:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3329, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2457:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2435:39:26" - }, - "returnParameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "2483:0:26" - }, - "scope": 3372, - "src": "2400:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3337, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3334, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "2516:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3333, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2516:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2515:21:26" - }, - "returnParameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [], - "src": "2545:0:26" - }, - "scope": 3372, - "src": "2487:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3344, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2588:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3338, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2588:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2609:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2609:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2587:46:26" - }, - "returnParameters": { - "id": 3343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2642:0:26" - }, - "scope": 3372, - "src": "2548:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3349, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3346, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "2679:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3345, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2679:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2678:21:26" - }, - "returnParameters": { - "id": 3348, - "nodeType": "ParameterList", - "parameters": [], - "src": "2708:0:26" - }, - "scope": 3372, - "src": "2645:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3354, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:2:26" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3354, - "src": "2859:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3351, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2859:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2858:6:26" - }, - "scope": 3372, - "src": "2814:51:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3361, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3356, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3152:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3355, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3152:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3151:23:26" - }, - "returnParameters": { - "id": 3360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3193:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:6:26" - }, - "scope": 3372, - "src": "3118:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param call ABI encoded calldata (methodId and arguments)", - "id": 3368, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3363, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3415:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3362, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3415:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3414:21:26" - }, - "returnParameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3454:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3454:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3453:6:26" - }, - "scope": 3372, - "src": "3379:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3371, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "3546:2:26" - }, - "returnParameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [], - "src": "3557:0:26" - }, - "scope": 3372, - "src": "3532:26:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "25:3535:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3373, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3372, - "src": "3635:13:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3372", - "typeString": "contract MockInterface" - } - }, - "id": 3374, - "nodeType": "InheritanceSpecifier", - "src": "3635:13:26" - } - ], - "contractDependencies": [ - 3372 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4351, - "linearizedBaseContracts": [ - 4351, - 3372 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3378, - "members": [ - { - "id": 3375, - "name": "Return", - "nodeType": "EnumValue", - "src": "3668:6:26" - }, - { - "id": 3376, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3676:6:26" - }, - { - "id": 3377, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3684:8:26" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3652:42:26" - }, - { - "constant": true, - "id": 3381, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3698:50:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3379, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3698:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3741:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3384, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3751:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3382, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3751:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:6:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3389, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3799:71:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3799:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3387, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "3855:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3845:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3845:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3392, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3873:51:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3390, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3396, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3989:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3395, - "keyType": { - "id": 3393, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3997:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3989:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3394, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4008:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3400, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4031:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3399, - "keyType": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4039:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4031:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3398, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4048:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4078:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3403, - "keyType": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4086:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4078:23:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3402, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4095:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3408, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4125:46:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3407, - "keyType": { - "id": 3405, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4133:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4125:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3406, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4142:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3412, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4174:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3411, - "keyType": { - "id": 3409, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4182:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4174:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3416, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4222:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3415, - "keyType": { - "id": 3413, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4230:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4222:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3414, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4240:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3420, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4264:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3419, - "keyType": { - "id": 3417, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4272:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4264:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3418, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4282:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3424, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4312:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3423, - "keyType": { - "id": 3421, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4320:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4312:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3428, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4360:48:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3427, - "keyType": { - "id": 3425, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4368:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4360:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3426, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4378:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4411:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3431, - "keyType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4419:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4411:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4430:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4459:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3433, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4459:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4487:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3435, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4487:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3438, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4515:28:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3437, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4515:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3440, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4546:16:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4546:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3442, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4565:15:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4565:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3457, - "nodeType": "Block", - "src": "4605:114:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3445, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4609:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3447, - "indexExpression": { - "argumentTypes": null, - "id": 3446, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4623:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4609:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3448, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "4643:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4609:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "4609:48:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3451, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4661:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3453, - "indexExpression": { - "argumentTypes": null, - "id": 3452, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4675:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4661:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4697:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4661:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3456, - "nodeType": "ExpressionStatement", - "src": "4661:54:26" - } - ] - }, - "documentation": null, - "id": 3458, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3443, - "nodeType": "ParameterList", - "parameters": [], - "src": "4595:2:26" - }, - "returnParameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [], - "src": "4605:0:26" - }, - "scope": 4351, - "src": "4584:135:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3491, - "nodeType": "Block", - "src": "4776:196:26", - "statements": [ - { - "assignments": [ - 3464 - ], - "declarations": [ - { - "constant": false, - "id": 3464, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "4780:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3463, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4780:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3468, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3466, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4809:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3465, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "4799:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4780:34:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3469, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4822:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3471, - "indexExpression": { - "argumentTypes": null, - "id": 3470, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4836:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4856:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4822:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3490, - "nodeType": "IfStatement", - "src": "4818:151:26", - "trueBody": { - "id": 3489, - "nodeType": "Block", - "src": "4859:110:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3475, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4864:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3477, - "indexExpression": { - "argumentTypes": null, - "id": 3476, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4878:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4864:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3478, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4890:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3480, - "indexExpression": { - "argumentTypes": null, - "id": 3479, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4904:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4890:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4864:57:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "4864:57:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3483, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4926:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3485, - "indexExpression": { - "argumentTypes": null, - "id": 3484, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4940:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4926:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3486, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4960:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4926:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3488, - "nodeType": "ExpressionStatement", - "src": "4926:38:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3460, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "4749:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4749:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:26" - }, - "returnParameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [], - "src": "4776:0:26" - }, - "scope": 4351, - "src": "4722:250:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3518, - "nodeType": "Block", - "src": "5027:161:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5035:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5049:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5035:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5062:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "5035:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3517, - "nodeType": "IfStatement", - "src": "5031:154:26", - "trueBody": { - "id": 3516, - "nodeType": "Block", - "src": "5067:118:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3502, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5072:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3504, - "indexExpression": { - "argumentTypes": null, - "id": 3503, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5086:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5072:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3505, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5098:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3507, - "indexExpression": { - "argumentTypes": null, - "id": 3506, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5112:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5098:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5072:59:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "5072:59:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3510, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5136:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3512, - "indexExpression": { - "argumentTypes": null, - "id": 3511, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5150:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5136:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3513, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5172:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5136:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "5136:44:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3519, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3494, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "5002:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3493, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5002:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5001:17:26" - }, - "returnParameters": { - "id": 3496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5027:0:26" - }, - "scope": 4351, - "src": "4975:213:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3533, - "nodeType": "Block", - "src": "5248:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3524, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5252:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3525, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5271:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5271:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5252:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "5252:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3529, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5290:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3530, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "5312:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5290:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3532, - "nodeType": "ExpressionStatement", - "src": "5290:30:26" - } - ] - }, - "documentation": null, - "id": 3534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3521, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3534, - "src": "5216:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5216:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5215:23:26" - }, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [], - "src": "5248:0:26" - }, - "scope": 4351, - "src": "5191:133:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3543, - "nodeType": "Block", - "src": "5385:33:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3536, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5389:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5389:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3542, - "nodeType": "ExpressionStatement", - "src": "5389:25:26" - } - ] - }, - "documentation": null, - "id": 3544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3536, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "5351:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3535, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5351:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5350:25:26" - }, - "returnParameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [], - "src": "5385:0:26" - }, - "scope": 4351, - "src": "5327:91:26", - "stateMutability": "nonpayable", - "superFunction": 3233, - "visibility": "external" - }, - { - "body": { - "id": 3562, - "nodeType": "Block", - "src": "5473:74:26", - "statements": [ - { - "assignments": [ - 3550 - ], - "declarations": [ - { - "constant": false, - "id": 3550, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "5477:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3549, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5477:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3551, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "5489:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5504:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5489:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5500:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5477:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3558, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "5537:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3557, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5525:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5525:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3556, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5509:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5509:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3561, - "nodeType": "ExpressionStatement", - "src": "5509:34:26" - } - ] - }, - "documentation": null, - "id": 3563, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3546, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3563, - "src": "5449:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5449:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5448:15:26" - }, - "returnParameters": { - "id": 3548, - "nodeType": "ParameterList", - "parameters": [], - "src": "5473:0:26" - }, - "scope": 4351, - "src": "5421:126:26", - "stateMutability": "nonpayable", - "superFunction": 3238, - "visibility": "external" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "5602:47:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3570, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3565, - "src": "5634:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3569, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5622:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5622:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3568, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5606:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:38:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3573, - "nodeType": "ExpressionStatement", - "src": "5606:38:26" - } - ] - }, - "documentation": null, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3565, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3575, - "src": "5578:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5578:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5577:15:26" - }, - "returnParameters": { - "id": 3567, - "nodeType": "ParameterList", - "parameters": [], - "src": "5602:0:26" - }, - "scope": 4351, - "src": "5550:99:26", - "stateMutability": "nonpayable", - "superFunction": 3243, - "visibility": "external" - }, - { - "body": { - "id": 3586, - "nodeType": "Block", - "src": "5710:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3582, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3577, - "src": "5745:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3581, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "5730:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3580, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5714:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3585, - "nodeType": "ExpressionStatement", - "src": "5714:41:26" - } - ] - }, - "documentation": null, - "id": 3587, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3577, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3587, - "src": "5683:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5683:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5682:18:26" - }, - "returnParameters": { - "id": 3579, - "nodeType": "ParameterList", - "parameters": [], - "src": "5710:0:26" - }, - "scope": 4351, - "src": "5652:107:26", - "stateMutability": "nonpayable", - "superFunction": 3248, - "visibility": "external" - }, - { - "body": { - "id": 3599, - "nodeType": "Block", - "src": "5797:72:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3590, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5801:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5820:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5820:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5801:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3594, - "nodeType": "ExpressionStatement", - "src": "5801:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3595, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5839:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5863:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5839:26:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5839:26:26" - } - ] - }, - "documentation": null, - "id": 3600, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [], - "src": "5785:2:26" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "5797:0:26" - }, - "scope": 4351, - "src": "5762:107:26", - "stateMutability": "nonpayable", - "superFunction": 3251, - "visibility": "external" - }, - { - "body": { - "id": 3614, - "nodeType": "Block", - "src": "5941:77:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3605, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5945:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5964:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5964:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5945:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3609, - "nodeType": "ExpressionStatement", - "src": "5945:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3610, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5983:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3611, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "6007:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5983:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "5983:31:26" - } - ] - }, - "documentation": null, - "id": 3615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3602, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3615, - "src": "5907:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3601, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5907:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5906:25:26" - }, - "returnParameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [], - "src": "5941:0:26" - }, - "scope": 4351, - "src": "5872:146:26", - "stateMutability": "nonpayable", - "superFunction": 3256, - "visibility": "external" - }, - { - "body": { - "id": 3623, - "nodeType": "Block", - "src": "6061:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3618, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "6065:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3619, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6084:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6084:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6065:36:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3622, - "nodeType": "ExpressionStatement", - "src": "6065:36:26" - } - ] - }, - "documentation": null, - "id": 3624, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3616, - "nodeType": "ParameterList", - "parameters": [], - "src": "6049:2:26" - }, - "returnParameters": { - "id": 3617, - "nodeType": "ParameterList", - "parameters": [], - "src": "6061:0:26" - }, - "scope": 4351, - "src": "6021:84:26", - "stateMutability": "nonpayable", - "superFunction": 3259, - "visibility": "external" - }, - { - "body": { - "id": 3648, - "nodeType": "Block", - "src": "6189:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3631, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "6193:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3633, - "indexExpression": { - "argumentTypes": null, - "id": 3632, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6211:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6193:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3634, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6219:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6219:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6193:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "6193:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3638, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "6238:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "id": 3639, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6259:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6238:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3641, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3628, - "src": "6267:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6238:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "6238:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6297:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3644, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "6279:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6279:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "6279:23:26" - } - ] - }, - "documentation": null, - "id": 3649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3626, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6138:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3628, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6157:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3627, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6157:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6137:42:26" - }, - "returnParameters": { - "id": 3630, - "nodeType": "ParameterList", - "parameters": [], - "src": "6189:0:26" - }, - "scope": 4351, - "src": "6108:198:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3661, - "nodeType": "Block", - "src": "6394:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3657, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "6419:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3658, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3653, - "src": "6425:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3656, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6398:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6398:36:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3660, - "nodeType": "ExpressionStatement", - "src": "6398:36:26" - } - ] - }, - "documentation": null, - "id": 3662, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6338:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6338:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6359:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3652, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6359:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6337:46:26" - }, - "returnParameters": { - "id": 3655, - "nodeType": "ParameterList", - "parameters": [], - "src": "6394:0:26" - }, - "scope": 4351, - "src": "6309:129:26", - "stateMutability": "nonpayable", - "superFunction": 3311, - "visibility": "external" - }, - { - "body": { - "id": 3683, - "nodeType": "Block", - "src": "6519:85:26", - "statements": [ - { - "assignments": [ - 3670 - ], - "declarations": [ - { - "constant": false, - "id": 3670, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3683, - "src": "6523:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3669, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6523:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3675, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3671, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3666, - "src": "6535:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6550:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6535:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6546:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6523:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3677, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3664, - "src": "6576:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3679, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "6594:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3678, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6582:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6582:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3676, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6555:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6555:45:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3682, - "nodeType": "ExpressionStatement", - "src": "6555:45:26" - } - ] - }, - "documentation": null, - "id": 3684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3664, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6474:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3663, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6474:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3666, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6495:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3665, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6495:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:36:26" - }, - "returnParameters": { - "id": 3668, - "nodeType": "ParameterList", - "parameters": [], - "src": "6519:0:26" - }, - "scope": 4351, - "src": "6441:163:26", - "stateMutability": "nonpayable", - "superFunction": 3318, - "visibility": "external" - }, - { - "body": { - "id": 3698, - "nodeType": "Block", - "src": "6685:57:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3686, - "src": "6710:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3694, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "6728:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3693, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6716:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6716:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3691, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6689:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6689:49:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "6689:49:26" - } - ] - }, - "documentation": null, - "id": 3699, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3686, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6640:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3685, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6640:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3688, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6661:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3687, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6661:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6639:36:26" - }, - "returnParameters": { - "id": 3690, - "nodeType": "ParameterList", - "parameters": [], - "src": "6685:0:26" - }, - "scope": 4351, - "src": "6607:135:26", - "stateMutability": "nonpayable", - "superFunction": 3325, - "visibility": "external" - }, - { - "body": { - "id": 3713, - "nodeType": "Block", - "src": "6829:60:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "6854:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6875:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3708, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "6860:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6860:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3706, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6833:52:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3712, - "nodeType": "ExpressionStatement", - "src": "6833:52:26" - } - ] - }, - "documentation": null, - "id": 3714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6781:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3700, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6781:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3703, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6802:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6802:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6780:39:26" - }, - "returnParameters": { - "id": 3705, - "nodeType": "ParameterList", - "parameters": [], - "src": "6829:0:26" - }, - "scope": 4351, - "src": "6745:144:26", - "stateMutability": "nonpayable", - "superFunction": 3332, - "visibility": "external" - }, - { - "body": { - "id": 3744, - "nodeType": "Block", - "src": "6970:164:26", - "statements": [ - { - "assignments": [ - 3722 - ], - "declarations": [ - { - "constant": false, - "id": 3722, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "6974:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3721, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6974:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3724, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7004:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3723, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "6990:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6974:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7013:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7031:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7013:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7041:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7041:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7013:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "7013:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7060:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7081:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7060:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3737, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3718, - "src": "7091:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "7060:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "7060:39:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3741, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7121:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3740, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "7103:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7103:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3743, - "nodeType": "ExpressionStatement", - "src": "7103:25:26" - } - ] - }, - "documentation": null, - "id": 3745, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6920:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3715, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6920:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3718, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6939:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3717, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6939:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6919:42:26" - }, - "returnParameters": { - "id": 3720, - "nodeType": "ParameterList", - "parameters": [], - "src": "6970:0:26" - }, - "scope": 4351, - "src": "6892:242:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3757, - "nodeType": "Block", - "src": "7219:42:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3747, - "src": "7242:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3754, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3749, - "src": "7248:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3752, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7223:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7223:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "7223:34:26" - } - ] - }, - "documentation": null, - "id": 3758, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3747, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7164:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7164:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3749, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7185:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3748, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7185:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7163:46:26" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "7219:0:26" - }, - "scope": 4351, - "src": "7137:124:26", - "stateMutability": "nonpayable", - "superFunction": 3266, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "7340:83:26", - "statements": [ - { - "assignments": [ - 3766 - ], - "declarations": [ - { - "constant": false, - "id": 3766, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3779, - "src": "7344:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7344:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3771, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3767, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7356:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7371:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7356:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7367:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7344:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3773, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3760, - "src": "7395:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3775, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "7413:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3774, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7401:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3772, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7376:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:43:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "7376:43:26" - } - ] - }, - "documentation": null, - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3760, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7295:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3759, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7295:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7316:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3761, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7316:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7294:36:26" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7340:0:26" - }, - "scope": 4351, - "src": "7264:159:26", - "stateMutability": "nonpayable", - "superFunction": 3273, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "7502:55:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3788, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "7525:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3790, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3784, - "src": "7543:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3789, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7531:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7531:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3787, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7506:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7506:47:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "7506:47:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7457:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3781, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7457:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3784, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7478:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7478:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7456:36:26" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "7502:0:26" - }, - "scope": 4351, - "src": "7426:131:26", - "stateMutability": "nonpayable", - "superFunction": 3280, - "visibility": "external" - }, - { - "body": { - "id": 3809, - "nodeType": "Block", - "src": "7642:58:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3803, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "7665:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3805, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "7686:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3804, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "7671:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7671:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3802, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7646:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7646:50:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3808, - "nodeType": "ExpressionStatement", - "src": "7646:50:26" - } - ] - }, - "documentation": null, - "id": 3810, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7594:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7594:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7615:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7615:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7593:39:26" - }, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [], - "src": "7642:0:26" - }, - "scope": 4351, - "src": "7560:140:26", - "stateMutability": "nonpayable", - "superFunction": 3287, - "visibility": "external" - }, - { - "body": { - "id": 3832, - "nodeType": "Block", - "src": "7762:112:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3815, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "7766:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3817, - "indexExpression": { - "argumentTypes": null, - "id": 3816, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7766:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7792:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7792:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7766:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3821, - "nodeType": "ExpressionStatement", - "src": "7766:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "7811:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7833:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7811:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7841:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7811:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3827, - "nodeType": "ExpressionStatement", - "src": "7811:32:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3829, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7865:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3828, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "7847:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7847:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3831, - "nodeType": "ExpressionStatement", - "src": "7847:23:26" - } - ] - }, - "documentation": null, - "id": 3833, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3812, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "7732:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3811, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7732:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7731:21:26" - }, - "returnParameters": { - "id": 3814, - "nodeType": "ParameterList", - "parameters": [], - "src": "7762:0:26" - }, - "scope": 4351, - "src": "7703:171:26", - "stateMutability": "nonpayable", - "superFunction": 3337, - "visibility": "external" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "7934:121:26", - "statements": [ - { - "assignments": [ - 3839 - ], - "declarations": [ - { - "constant": false, - "id": 3839, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "7938:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3838, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7938:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3843, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7968:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3840, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "7954:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7954:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7938:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7977:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "id": 3845, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "7995:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7977:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8005:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8005:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7977:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3850, - "nodeType": "ExpressionStatement", - "src": "7977:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3852, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "8042:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3851, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8024:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8024:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3854, - "nodeType": "ExpressionStatement", - "src": "8024:25:26" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3835, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "7904:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3834, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7904:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7903:21:26" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [], - "src": "7934:0:26" - }, - "scope": 4351, - "src": "7877:178:26", - "stateMutability": "nonpayable", - "superFunction": 3292, - "visibility": "external" - }, - { - "body": { - "id": 3880, - "nodeType": "Block", - "src": "8153:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3863, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8157:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3865, - "indexExpression": { - "argumentTypes": null, - "id": 3864, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8175:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8157:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3866, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8183:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8157:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3869, - "nodeType": "ExpressionStatement", - "src": "8157:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3870, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "8202:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3872, - "indexExpression": { - "argumentTypes": null, - "id": 3871, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8224:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8202:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3873, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "8232:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8202:37:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3875, - "nodeType": "ExpressionStatement", - "src": "8202:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3877, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8261:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3876, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8243:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8243:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3879, - "nodeType": "ExpressionStatement", - "src": "8243:23:26" - } - ] - }, - "documentation": null, - "id": 3881, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8098:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3857, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8098:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8119:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3859, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8119:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8097:46:26" - }, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "8153:0:26" - }, - "scope": 4351, - "src": "8058:212:26", - "stateMutability": "nonpayable", - "superFunction": 3344, - "visibility": "external" - }, - { - "body": { - "id": 3911, - "nodeType": "Block", - "src": "8366:165:26", - "statements": [ - { - "assignments": [ - 3889 - ], - "declarations": [ - { - "constant": false, - "id": 3889, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3911, - "src": "8370:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3888, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3893, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3891, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3883, - "src": "8400:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3890, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8386:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8386:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8409:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3896, - "indexExpression": { - "argumentTypes": null, - "id": 3895, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8427:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8409:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3897, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8437:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8437:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8409:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3900, - "nodeType": "ExpressionStatement", - "src": "8409:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8456:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3903, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8479:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8456:30:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3904, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "8489:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8456:40:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3906, - "nodeType": "ExpressionStatement", - "src": "8456:40:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3908, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8518:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3907, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8500:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8500:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3910, - "nodeType": "ExpressionStatement", - "src": "8500:25:26" - } - ] - }, - "documentation": null, - "id": 3912, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3883, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8311:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3882, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8311:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3885, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8332:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3884, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8332:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8310:46:26" - }, - "returnParameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [], - "src": "8366:0:26" - }, - "scope": 4351, - "src": "8273:258:26", - "stateMutability": "nonpayable", - "superFunction": 3299, - "visibility": "external" - }, - { - "body": { - "id": 3928, - "nodeType": "Block", - "src": "8598:78:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3917, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8602:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3919, - "indexExpression": { - "argumentTypes": null, - "id": 3918, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8620:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8602:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3920, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8628:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8628:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8602:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3923, - "nodeType": "ExpressionStatement", - "src": "8602:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3925, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8667:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3924, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8649:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8649:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3927, - "nodeType": "ExpressionStatement", - "src": "8649:23:26" - } - ] - }, - "documentation": null, - "id": 3929, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3914, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3929, - "src": "8568:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3913, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8568:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8567:21:26" - }, - "returnParameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [], - "src": "8598:0:26" - }, - "scope": 4351, - "src": "8534:142:26", - "stateMutability": "nonpayable", - "superFunction": 3349, - "visibility": "external" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "8741:122:26", - "statements": [ - { - "assignments": [ - 3935 - ], - "declarations": [ - { - "constant": false, - "id": 3935, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3951, - "src": "8745:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3934, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8745:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3939, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3937, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3931, - "src": "8775:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3936, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8761:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8761:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8745:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3940, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8784:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3942, - "indexExpression": { - "argumentTypes": null, - "id": 3941, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8802:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8784:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8812:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8812:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8784:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3946, - "nodeType": "ExpressionStatement", - "src": "8784:45:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8851:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3947, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8833:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8833:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "8833:25:26" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3931, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "8711:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8711:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8710:21:26" - }, - "returnParameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "8741:0:26" - }, - "scope": 4351, - "src": "8679:184:26", - "stateMutability": "nonpayable", - "superFunction": 3304, - "visibility": "external" - }, - { - "body": { - "id": 3959, - "nodeType": "Block", - "src": "8917:26:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3957, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "8928:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3956, - "id": 3958, - "nodeType": "Return", - "src": "8921:18:26" - } - ] - }, - "documentation": null, - "id": 3960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3953, - "nodeType": "ParameterList", - "parameters": [], - "src": "8890:2:26" - }, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3960, - "src": "8911:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3954, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8911:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8910:6:26" - }, - "scope": 4351, - "src": "8866:77:26", - "stateMutability": "nonpayable", - "superFunction": 3354, - "visibility": "external" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "9025:122:26", - "statements": [ - { - "assignments": [ - 3968 - ], - "declarations": [ - { - "constant": false, - "id": 3968, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3983, - "src": "9029:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3967, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9029:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3972, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3970, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "9059:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3969, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "9045:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9045:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9029:35:26" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3973, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "9075:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3977, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9122:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3978, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "9134:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3975, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9105:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9105:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9105:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3974, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9095:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:47:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9075:68:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3966, - "id": 3982, - "nodeType": "Return", - "src": "9068:75:26" - } - ] - }, - "documentation": null, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3962, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "8980:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8980:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8979:21:26" - }, - "returnParameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3965, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "9019:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3964, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9019:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9018:6:26" - }, - "scope": 4351, - "src": "8946:201:26", - "stateMutability": "nonpayable", - "superFunction": 3361, - "visibility": "external" - }, - { - "body": { - "id": 4001, - "nodeType": "Block", - "src": "9231:81:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3991, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "9242:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3999, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3995, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9289:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3996, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "9301:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3993, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9272:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9272:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9272:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3992, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9262:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9262:45:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9242:66:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3990, - "id": 4000, - "nodeType": "Return", - "src": "9235:73:26" - } - ] - }, - "documentation": null, - "id": 4002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3986, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9186:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3985, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9186:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9185:21:26" - }, - "returnParameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3989, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9225:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9225:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9224:6:26" - }, - "scope": 4351, - "src": "9150:162:26", - "stateMutability": "nonpayable", - "superFunction": 3368, - "visibility": "external" - }, - { - "body": { - "id": 4134, - "nodeType": "Block", - "src": "9341:1265:26", - "statements": [ - { - "assignments": [ - 4006 - ], - "declarations": [ - { - "constant": false, - "id": 4006, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9380:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4005, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9380:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4010, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4007, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9404:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4009, - "indexExpression": { - "argumentTypes": null, - "id": 4008, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9418:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9404:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9380:55:26" - }, - { - "assignments": [ - 4012 - ], - "declarations": [ - { - "constant": false, - "id": 4012, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9439:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4011, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9439:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4016, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4014, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9468:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4013, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9458:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9458:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9439:38:26" - }, - { - "body": { - "id": 4057, - "nodeType": "Block", - "src": "9549:355:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4020, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "9580:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4022, - "indexExpression": { - "argumentTypes": null, - "id": 4021, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9598:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9580:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "9610:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9610:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9580:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4026, - "nodeType": "ExpressionStatement", - "src": "9580:45:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4027, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "9630:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4029, - "indexExpression": { - "argumentTypes": null, - "id": 4028, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9651:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9630:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9630:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4032, - "nodeType": "ExpressionStatement", - "src": "9630:38:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4033, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "9673:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4035, - "indexExpression": { - "argumentTypes": null, - "id": 4034, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9695:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9673:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9707:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9673:36:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4038, - "nodeType": "ExpressionStatement", - "src": "9673:36:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4039, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9744:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4040, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9755:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4042, - "indexExpression": { - "argumentTypes": null, - "id": 4041, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9769:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9755:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9744:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4044, - "nodeType": "ExpressionStatement", - "src": "9744:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4045, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9813:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4047, - "indexExpression": { - "argumentTypes": null, - "id": 4046, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9827:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9839:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4050, - "nodeType": "ExpressionStatement", - "src": "9813:28:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4051, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9869:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4053, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9890:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4052, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9880:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9880:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9869:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 4056, - "nodeType": "ExpressionStatement", - "src": "9869:30:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4017, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9516:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4018, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "9528:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9516:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4058, - "nodeType": "WhileStatement", - "src": "9510:394:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4059, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9923:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4061, - "indexExpression": { - "argumentTypes": null, - "id": 4060, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9937:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9923:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4062, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "9957:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9923:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4064, - "nodeType": "ExpressionStatement", - "src": "9923:48:26" - }, - { - "assignments": [ - 4066 - ], - "declarations": [ - { - "constant": false, - "id": 4066, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "10009:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4065, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4070, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4067, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10030:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4069, - "indexExpression": { - "argumentTypes": null, - "id": 4068, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10044:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10030:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10009:54:26" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "10108:316:26", - "statements": [ - { - "assignments": [ - 4075 - ], - "declarations": [ - { - "constant": false, - "id": 4075, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "10113:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10113:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4077, - "initialValue": { - "argumentTypes": null, - "id": 4076, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10137:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10113:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4078, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "10153:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4080, - "indexExpression": { - "argumentTypes": null, - "id": 4079, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10171:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10153:33:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4081, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10189:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10189:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10153:51:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "10153:51:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4085, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "10209:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4087, - "indexExpression": { - "argumentTypes": null, - "id": 4086, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10230:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10209:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10209:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4090, - "nodeType": "ExpressionStatement", - "src": "10209:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4091, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "10258:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4093, - "indexExpression": { - "argumentTypes": null, - "id": 4092, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10281:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10258:38:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10299:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10258:43:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4096, - "nodeType": "ExpressionStatement", - "src": "10258:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4097, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10306:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4098, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10320:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4100, - "indexExpression": { - "argumentTypes": null, - "id": 4099, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10334:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10320:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10306:43:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4102, - "nodeType": "ExpressionStatement", - "src": "10306:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4103, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10384:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4105, - "indexExpression": { - "argumentTypes": null, - "id": 4104, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10398:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10384:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10416:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "10384:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4108, - "nodeType": "ExpressionStatement", - "src": "10384:35:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4071, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10073:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4072, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10088:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10073:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4110, - "nodeType": "WhileStatement", - "src": "10067:357:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4111, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10443:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4113, - "indexExpression": { - "argumentTypes": null, - "id": 4112, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10457:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10443:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4114, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10479:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10443:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4116, - "nodeType": "ExpressionStatement", - "src": "10443:54:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4117, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "10502:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10524:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10502:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4120, - "nodeType": "ExpressionStatement", - "src": "10502:24:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4121, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "10530:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4122, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10549:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10549:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10530:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4125, - "nodeType": "ExpressionStatement", - "src": "10530:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4126, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "10568:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10582:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10568:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4129, - "nodeType": "ExpressionStatement", - "src": "10568:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4130, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "10587:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10601:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10587:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4133, - "nodeType": "ExpressionStatement", - "src": "10587:15:26" - } - ] - }, - "documentation": null, - "id": 4135, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4003, - "nodeType": "ParameterList", - "parameters": [], - "src": "9329:2:26" - }, - "returnParameters": { - "id": 4004, - "nodeType": "ParameterList", - "parameters": [], - "src": "9341:0:26" - }, - "scope": 4351, - "src": "9315:1291:26", - "stateMutability": "nonpayable", - "superFunction": 3371, - "visibility": "external" - }, - { - "body": { - "id": 4145, - "nodeType": "Block", - "src": "10638:157:26", - "statements": [ - { - "body": { - "id": 4143, - "nodeType": "Block", - "src": "10654:138:26", - "statements": [ - { - "assignments": [ - 4140 - ], - "declarations": [ - { - "constant": false, - "id": 4140, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 4143, - "src": "10659:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4139, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10659:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4141, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10659:6:26" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 4140, - "isOffset": false, - "isSlot": false, - "src": "10730:1:26", - "valueSize": 1 - } - } - ], - "id": 4142, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10670:122:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10648:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 4144, - "nodeType": "WhileStatement", - "src": "10642:150:26" - } - ] - }, - "documentation": null, - "id": 4146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4136, - "nodeType": "ParameterList", - "parameters": [], - "src": "10627:2:26" - }, - "returnParameters": { - "id": 4137, - "nodeType": "ParameterList", - "parameters": [], - "src": "10638:0:26" - }, - "scope": 4351, - "src": "10609:186:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4185, - "nodeType": "Block", - "src": "10867:122:26", - "statements": [ - { - "assignments": [ - 4154 - ], - "declarations": [ - { - "constant": false, - "id": 4154, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 4185, - "src": "10873:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4153, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10873:10:26" - }, - { - "body": { - "id": 4181, - "nodeType": "Block", - "src": "10918:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4166, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10926:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4168, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4148, - "src": "10940:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4170, - "indexExpression": { - "argumentTypes": null, - "id": 4169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10942:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10940:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10947:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10940:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10933:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10933:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4174, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10957:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10961:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10957:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4177, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10933:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10926:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4180, - "nodeType": "ExpressionStatement", - "src": "10926:37:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4160, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10906:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10910:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10906:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4182, - "initializationExpression": { - "assignments": [ - 4157 - ], - "declarations": [ - { - "constant": false, - "id": 4157, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4182, - "src": "10894:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10894:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4159, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10903:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10894:10:26" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10913:3:26", - "subExpression": { - "argumentTypes": null, - "id": 4163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10913:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4165, - "nodeType": "ExpressionStatement", - "src": "10913:3:26" - }, - "nodeType": "ForStatement", - "src": "10889:81:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4183, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10982:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 4152, - "id": 4184, - "nodeType": "Return", - "src": "10975:10:26" - } - ] - }, - "documentation": null, - "id": 4186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4148, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10821:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10821:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10820:16:26" - }, - "returnParameters": { - "id": 4152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10859:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4150, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10859:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10858:8:26" - }, - "scope": 4351, - "src": "10798:191:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4194, - "nodeType": "Block", - "src": "11064:189:26", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 4191, - "isOffset": false, - "isSlot": false, - "src": "11237:1:26", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 4188, - "isOffset": false, - "isSlot": false, - "src": "11190:1:26", - "valueSize": 1 - } - } - ], - "id": 4193, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "11071:182:26" - } - ] - }, - "documentation": null, - "id": 4195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4188, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11016:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11016:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11015:11:26" - }, - "returnParameters": { - "id": 4192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4191, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11049:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4190, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11049:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11048:16:26" - }, - "scope": 4351, - "src": "10992:261:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4210, - "nodeType": "Block", - "src": "11326:68:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4202, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4200, - "src": "11333:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 4205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11347:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11337:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4203, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11341:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11337:13:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "11333:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4208, - "nodeType": "ExpressionStatement", - "src": "11333:17:26" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 4197, - "isOffset": false, - "isSlot": false, - "src": "11387:1:26", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 4200, - "isOffset": false, - "isSlot": false, - "src": "11379:1:26", - "valueSize": 1 - } - } - ], - "id": 4209, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "11357:37:26" - } - ] - }, - "documentation": null, - "id": 4211, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4197, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11277:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11277:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11276:11:26" - }, - "returnParameters": { - "id": 4201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4200, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11310:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4199, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11310:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11309:16:26" - }, - "scope": 4351, - "src": "11256:138:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4349, - "nodeType": "Block", - "src": "11425:1178:26", - "statements": [ - { - "assignments": [ - 4215 - ], - "declarations": [ - { - "constant": false, - "id": 4215, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11429:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4214, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11429:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4216, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11429:15:26" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 4215, - "isOffset": false, - "isSlot": false, - "src": "11462:8:26", - "valueSize": 1 - } - } - ], - "id": 4217, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11448:94:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4218, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11544:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11562:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11544:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4222, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11575:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11575:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11544:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4233, - "nodeType": "IfStatement", - "src": "11540:101:26", - "trueBody": { - "id": 4232, - "nodeType": "Block", - "src": "11592:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4226, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "11604:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4229, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4227, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11626:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11626:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11604:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4225, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11597:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11597:39:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4231, - "nodeType": "ExpressionStatement", - "src": "11597:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4234, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11648:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4237, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4235, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11666:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11666:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11648:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4238, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11679:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11679:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11648:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4245, - "nodeType": "IfStatement", - "src": "11644:75:26", - "trueBody": { - "id": 4244, - "nodeType": "Block", - "src": "11698:21:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4241, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "11703:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11703:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4243, - "nodeType": "ExpressionStatement", - "src": "11703:11:26" - } - ] - } - }, - { - "assignments": [ - 4247 - ], - "declarations": [ - { - "constant": false, - "id": 4247, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11722:19:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4246, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11722:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4248, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "11744:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11765:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11765:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11744:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11722:52:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4253, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "11819:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11819:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11836:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11819:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4289, - "nodeType": "IfStatement", - "src": "11815:262:26", - "trueBody": { - "id": 4288, - "nodeType": "Block", - "src": "11839:238:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4257, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11848:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4259, - "indexExpression": { - "argumentTypes": null, - "id": 4258, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11866:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11848:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4260, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11879:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11879:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11848:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4270, - "nodeType": "IfStatement", - "src": "11844:104:26", - "trueBody": { - "id": 4269, - "nodeType": "Block", - "src": "11896:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4264, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "11909:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4266, - "indexExpression": { - "argumentTypes": null, - "id": 4265, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11932:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11909:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4263, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11902:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11902:40:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4268, - "nodeType": "ExpressionStatement", - "src": "11902:40:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11956:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11974:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11956:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4274, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11987:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11987:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11956:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4281, - "nodeType": "IfStatement", - "src": "11952:77:26", - "trueBody": { - "id": 4280, - "nodeType": "Block", - "src": "12006:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4277, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12012:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12012:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4279, - "nodeType": "ExpressionStatement", - "src": "12012:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4282, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12033:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4283, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "12042:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4285, - "indexExpression": { - "argumentTypes": null, - "id": 4284, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12063:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12042:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12033:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4287, - "nodeType": "ExpressionStatement", - "src": "12033:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4290, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12122:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12122:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12139:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12122:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4318, - "nodeType": "IfStatement", - "src": "12118:218:26", - "trueBody": { - "id": 4317, - "nodeType": "Block", - "src": "12142:194:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4294, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12151:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4295, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12171:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12171:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12151:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4303, - "nodeType": "IfStatement", - "src": "12147:82:26", - "trueBody": { - "id": 4302, - "nodeType": "Block", - "src": "12188:41:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4299, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "12201:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4298, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12194:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12194:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4301, - "nodeType": "ExpressionStatement", - "src": "12194:29:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4304, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12237:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4305, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12257:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12257:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12237:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4312, - "nodeType": "IfStatement", - "src": "12233:66:26", - "trueBody": { - "id": 4311, - "nodeType": "Block", - "src": "12276:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4308, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12282:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12282:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "12282:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4313, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12303:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4314, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "12312:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12303:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4316, - "nodeType": "ExpressionStatement", - "src": "12303:28:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4319, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "12363:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12378:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12363:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4322, - "nodeType": "ExpressionStatement", - "src": "12363:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "12383:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4331, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12430:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4328, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12442:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 4325, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12413:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12413:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12413:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4324, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12403:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12403:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12383:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12457:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12383:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4334, - "nodeType": "ExpressionStatement", - "src": "12383:75:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4335, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "12462:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4339, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12509:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12521:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12521:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4337, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12492:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12492:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12492:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4336, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12482:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12482:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12462:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12536:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12462:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4347, - "nodeType": "ExpressionStatement", - "src": "12462:75:26" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12588:6:26", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12573:6:26", - "valueSize": 1 - } - } - ], - "id": 4348, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12542:61:26" - } - ] - }, - "documentation": null, - "id": 4350, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [], - "src": "11405:2:26" - }, - "returnParameters": { - "id": 4213, - "nodeType": "ParameterList", - "parameters": [], - "src": "11425:0:26" - }, - "scope": 4351, - "src": "11397:1206:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "3610:8995:26" - } - ], - "src": "0:12606:26" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.647Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MockInterface.json b/safe-contracts/build/contracts/MockInterface.json deleted file mode 100644 index cba2d48d..00000000 --- a/safe-contracts/build/contracts/MockInterface.json +++ /dev/null @@ -1,28171 +0,0 @@ -{ - "contractName": "MockInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenAnyReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "bool" - } - ], - "name": "givenAnyReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenAnyReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "response", - "type": "address" - } - ], - "name": "givenAnyReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "message", - "type": "string" - } - ], - "name": "givenAnyRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "givenAnyRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenMethodReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenMethodReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenMethodReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenMethodReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "givenMethodRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenMethodRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "givenMethodRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bytes" - } - ], - "name": "givenCalldataReturn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "bool" - } - ], - "name": "givenCalldataReturnBool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "uint256" - } - ], - "name": "givenCalldataReturnUint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - }, - { - "name": "response", - "type": "address" - } - ], - "name": "givenCalldataReturnAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "name": "givenCalldataRevert", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "data", - "type": "bytes" - }, - { - "name": "message", - "type": "string" - } - ], - "name": "givenCalldataRevertWithMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "name": "givenCalldataRunOutOfGas", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "invocationCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "method", - "type": "bytes" - } - ], - "name": "invocationCountForMethod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "call", - "type": "bytes" - } - ], - "name": "invocationCountForCalldata", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "reset", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\ninterface MockInterface {\n\t/**\n\t * @dev After calling this method, the mock will return `response` when it is called\n\t * with any calldata that is not mocked more specifically below\n\t * (e.g. using givenMethodReturn).\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenAnyReturn(bytes calldata response) external;\n\tfunction givenAnyReturnBool(bool response) external;\n\tfunction givenAnyReturnUint(uint response) external;\n\tfunction givenAnyReturnAddress(address response) external;\n\n\tfunction givenAnyRevert() external;\n\tfunction givenAnyRevertWithMessage(string calldata message) external;\n\tfunction givenAnyRunOutOfGas() external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called regardless of arguments. If the methodId and arguments\n\t * are mocked more specifically (using `givenMethodAndArguments`) the latter\n\t * will take precedence.\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t * @param response ABI encoded response that will be returned if method is invoked\n\t */\n\tfunction givenMethodReturn(bytes calldata method, bytes calldata response) external;\n\tfunction givenMethodReturnBool(bytes calldata method, bool response) external;\n\tfunction givenMethodReturnUint(bytes calldata method, uint response) external;\n\tfunction givenMethodReturnAddress(bytes calldata method, address response) external;\n\n\tfunction givenMethodRevert(bytes calldata method) external;\n\tfunction givenMethodRevertWithMessage(bytes calldata method, string calldata message) external;\n\tfunction givenMethodRunOutOfGas(bytes calldata method) external;\n\n\t/**\n\t * @dev After calling this method, the mock will return `response` when the given\n\t * methodId is called with matching arguments. These exact calldataMocks will take\n\t * precedence over all other calldataMocks.\n\t * @param call ABI encoded calldata (methodId and arguments)\n\t * @param response ABI encoded response that will be returned if contract is invoked with calldata\n\t */\n\tfunction givenCalldataReturn(bytes calldata call, bytes calldata response) external;\n\tfunction givenCalldataReturnBool(bytes calldata call, bool response) external;\n\tfunction givenCalldataReturnUint(bytes calldata call, uint response) external;\n\tfunction givenCalldataReturnAddress(bytes calldata call, address response) external;\n\n\tfunction givenCalldataRevert(bytes calldata data) external;\n\tfunction givenCalldataRevertWithMessage(bytes calldata data, string calldata message) external;\n\tfunction givenCalldataRunOutOfGas(bytes calldata data) external;\n\n\t/**\n\t * @dev Returns the number of times anything has been called on this mock since last reset\n\t */\n\tfunction invocationCount() external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times the given method has been called on this mock since last reset\n\t * @param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n\t */\n\tfunction invocationCountForMethod(bytes calldata method) external returns (uint);\n\n\t/**\n\t * @dev Returns the number of times this mock has been called with the exact calldata since last reset.\n\t * @param call ABI encoded calldata (methodId and arguments)\n\t */\n\tfunction invocationCountForCalldata(bytes calldata call) external returns (uint);\n\n\t/**\n\t * @dev Resets all mocked methods and invocation counts.\n\t */\n\t function reset() external;\n}\n\n/**\n * Implementation of the MockInterface.\n */\ncontract MockContract is MockInterface {\n\tenum MockType { Return, Revert, OutOfGas }\n\t\n\tbytes32 public constant MOCKS_LIST_START = hex\"01\";\n\tbytes public constant MOCKS_LIST_END = \"0xff\";\n\tbytes32 public constant MOCKS_LIST_END_HASH = keccak256(MOCKS_LIST_END);\n\tbytes4 public constant SENTINEL_ANY_MOCKS = hex\"01\";\n\n\t// A linked list allows easy iteration and inclusion checks\n\tmapping(bytes32 => bytes) calldataMocks;\n\tmapping(bytes => MockType) calldataMockTypes;\n\tmapping(bytes => bytes) calldataExpectations;\n\tmapping(bytes => string) calldataRevertMessage;\n\tmapping(bytes32 => uint) calldataInvocations;\n\n\tmapping(bytes4 => bytes4) methodIdMocks;\n\tmapping(bytes4 => MockType) methodIdMockTypes;\n\tmapping(bytes4 => bytes) methodIdExpectations;\n\tmapping(bytes4 => string) methodIdRevertMessages;\n\tmapping(bytes32 => uint) methodIdInvocations;\n\n\tMockType fallbackMockType;\n\tbytes fallbackExpectation;\n\tstring fallbackRevertMessage;\n\tuint invocations;\n\tuint resetCount;\n\n\tconstructor() public {\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\t}\n\n\tfunction trackCalldataMock(bytes memory call) private {\n\t\tbytes32 callHash = keccak256(call);\n\t\tif (calldataMocks[callHash].length == 0) {\n\t\t\tcalldataMocks[callHash] = calldataMocks[MOCKS_LIST_START];\n\t\t\tcalldataMocks[MOCKS_LIST_START] = call;\n\t\t}\n\t}\n\n\tfunction trackMethodIdMock(bytes4 methodId) private {\n\t\tif (methodIdMocks[methodId] == 0x0) {\n\t\t\tmethodIdMocks[methodId] = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = methodId;\n\t\t}\n\t}\n\n\tfunction _givenAnyReturn(bytes memory response) internal {\n\t\tfallbackMockType = MockType.Return;\n\t\tfallbackExpectation = response;\n\t}\n\n\tfunction givenAnyReturn(bytes calldata response) external {\n\t\t_givenAnyReturn(response);\n\t}\n\n\tfunction givenAnyReturnBool(bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenAnyReturn(uintToBytes(flag));\n\t}\n\n\tfunction givenAnyReturnUint(uint response) external {\n\t\t_givenAnyReturn(uintToBytes(response));\t\n\t}\n\n\tfunction givenAnyReturnAddress(address response) external {\n\t\t_givenAnyReturn(addressToBytes(response));\n\t}\n\n\tfunction givenAnyRevert() external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = \"\";\n\t}\n\n\tfunction givenAnyRevertWithMessage(string calldata message) external {\n\t\tfallbackMockType = MockType.Revert;\n\t\tfallbackRevertMessage = message;\n\t}\n\n\tfunction givenAnyRunOutOfGas() external {\n\t\tfallbackMockType = MockType.OutOfGas;\n\t}\n\n\tfunction _givenCalldataReturn(bytes memory call, bytes memory response) private {\n\t\tcalldataMockTypes[call] = MockType.Return;\n\t\tcalldataExpectations[call] = response;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenCalldataReturn(bytes calldata call, bytes calldata response) external {\n\t\t_givenCalldataReturn(call, response);\n\t}\n\n\tfunction givenCalldataReturnBool(bytes calldata call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenCalldataReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenCalldataReturnUint(bytes calldata call, uint response) external {\n\t\t_givenCalldataReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenCalldataReturnAddress(bytes calldata call, address response) external {\n\t\t_givenCalldataReturn(call, addressToBytes(response));\n\t}\n\n\tfunction _givenMethodReturn(bytes memory call, bytes memory response) private {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Return;\n\t\tmethodIdExpectations[method] = response;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenMethodReturn(bytes calldata call, bytes calldata response) external {\n\t\t_givenMethodReturn(call, response);\n\t}\n\n\tfunction givenMethodReturnBool(bytes calldata call, bool response) external {\n\t\tuint flag = response ? 1 : 0;\n\t\t_givenMethodReturn(call, uintToBytes(flag));\n\t}\n\n\tfunction givenMethodReturnUint(bytes calldata call, uint response) external {\n\t\t_givenMethodReturn(call, uintToBytes(response));\n\t}\n\n\tfunction givenMethodReturnAddress(bytes calldata call, address response) external {\n\t\t_givenMethodReturn(call, addressToBytes(response));\n\t}\n\n\tfunction givenCalldataRevert(bytes calldata call) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = \"\";\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevert(bytes calldata call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRevertWithMessage(bytes calldata call, string calldata message) external {\n\t\tcalldataMockTypes[call] = MockType.Revert;\n\t\tcalldataRevertMessage[call] = message;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRevertWithMessage(bytes calldata call, string calldata message) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.Revert;\n\t\tmethodIdRevertMessages[method] = message;\n\t\ttrackMethodIdMock(method);\t\t\n\t}\n\n\tfunction givenCalldataRunOutOfGas(bytes calldata call) external {\n\t\tcalldataMockTypes[call] = MockType.OutOfGas;\n\t\ttrackCalldataMock(call);\n\t}\n\n\tfunction givenMethodRunOutOfGas(bytes calldata call) external {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\tmethodIdMockTypes[method] = MockType.OutOfGas;\n\t\ttrackMethodIdMock(method);\t\n\t}\n\n\tfunction invocationCount() external returns (uint) {\n\t\treturn invocations;\n\t}\n\n\tfunction invocationCountForMethod(bytes calldata call) external returns (uint) {\n\t\tbytes4 method = bytesToBytes4(call);\n\t\treturn methodIdInvocations[keccak256(abi.encodePacked(resetCount, method))];\n\t}\n\n\tfunction invocationCountForCalldata(bytes calldata call) external returns (uint) {\n\t\treturn calldataInvocations[keccak256(abi.encodePacked(resetCount, call))];\n\t}\n\n\tfunction reset() external {\n\t\t// Reset all exact calldataMocks\n\t\tbytes memory nextMock = calldataMocks[MOCKS_LIST_START];\n\t\tbytes32 mockHash = keccak256(nextMock);\n\t\t// We cannot compary bytes\n\t\twhile(mockHash != MOCKS_LIST_END_HASH) {\n\t\t\t// Reset all mock maps\n\t\t\tcalldataMockTypes[nextMock] = MockType.Return;\n\t\t\tcalldataExpectations[nextMock] = hex\"\";\n\t\t\tcalldataRevertMessage[nextMock] = \"\";\n\t\t\t// Set next mock to remove\n\t\t\tnextMock = calldataMocks[mockHash];\n\t\t\t// Remove from linked list\n\t\t\tcalldataMocks[mockHash] = \"\";\n\t\t\t// Update mock hash\n\t\t\tmockHash = keccak256(nextMock);\n\t\t}\n\t\t// Clear list\n\t\tcalldataMocks[MOCKS_LIST_START] = MOCKS_LIST_END;\n\n\t\t// Reset all any calldataMocks\n\t\tbytes4 nextAnyMock = methodIdMocks[SENTINEL_ANY_MOCKS];\n\t\twhile(nextAnyMock != SENTINEL_ANY_MOCKS) {\n\t\t\tbytes4 currentAnyMock = nextAnyMock;\n\t\t\tmethodIdMockTypes[currentAnyMock] = MockType.Return;\n\t\t\tmethodIdExpectations[currentAnyMock] = hex\"\";\n\t\t\tmethodIdRevertMessages[currentAnyMock] = \"\";\n\t\t\tnextAnyMock = methodIdMocks[currentAnyMock];\n\t\t\t// Remove from linked list\n\t\t\tmethodIdMocks[currentAnyMock] = 0x0;\n\t\t}\n\t\t// Clear list\n\t\tmethodIdMocks[SENTINEL_ANY_MOCKS] = SENTINEL_ANY_MOCKS;\n\n\t\tfallbackExpectation = \"\";\n\t\tfallbackMockType = MockType.Return;\n\t\tinvocations = 0;\n\t\tresetCount += 1;\n\t}\n\n\tfunction useAllGas() private {\n\t\twhile(true) {\n\t\t\tbool s;\n\t\t\tassembly {\n\t\t\t\t//expensive call to EC multiply contract\n\t\t\t\ts := call(sub(gas, 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction bytesToBytes4(bytes memory b) private pure returns (bytes4) {\n \t\tbytes4 out;\n \t\tfor (uint i = 0; i < 4; i++) {\n \t\tout |= bytes4(b[i] & 0xFF) >> (i * 8);\n \t\t}\n \t\treturn out;\n\t}\n\n\tfunction addressToBytes(address a) private pure returns (bytes memory b){\n \t\tassembly {\n \tlet m := mload(0x40)\n \tmstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n \tmstore(0x40, add(m, 52))\n \tb := m\n \t\t}\n\t}\n\n\tfunction uintToBytes(uint256 x) private pure returns (bytes memory b) {\n \tb = new bytes(32);\n \tassembly { mstore(add(b, 32), x) }\n\t}\n\n\tfunction() payable external {\n\t\tbytes4 methodId;\n\t\tassembly {\n\t\t\tmethodId := calldataload(0)\n\t\t}\n\n\t\t// First, check exact matching overrides\n\t\tif (calldataMockTypes[msg.data] == MockType.Revert) {\n\t\t\trevert(calldataRevertMessage[msg.data]);\n\t\t}\n\t\tif (calldataMockTypes[msg.data] == MockType.OutOfGas) {\n\t\t\tuseAllGas();\n\t\t}\n\t\tbytes memory result = calldataExpectations[msg.data];\n\n\t\t// Then check method Id overrides\n\t\tif (result.length == 0) {\n\t\t\tif (methodIdMockTypes[methodId] == MockType.Revert) {\n\t\t\t\trevert(methodIdRevertMessages[methodId]);\n\t\t\t}\n\t\t\tif (methodIdMockTypes[methodId] == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = methodIdExpectations[methodId];\n\t\t}\n\n\t\t// Last, use the fallback override\n\t\tif (result.length == 0) {\n\t\t\tif (fallbackMockType == MockType.Revert) {\n\t\t\t\trevert(fallbackRevertMessage);\n\t\t\t}\n\t\t\tif (fallbackMockType == MockType.OutOfGas) {\n\t\t\t\tuseAllGas();\n\t\t\t}\n\t\t\tresult = fallbackExpectation;\n\t\t}\n\n\t\t// Record invocation\n\t\tinvocations += 1;\n\t\tmethodIdInvocations[keccak256(abi.encodePacked(resetCount, methodId))] += 1;\n\t\tcalldataInvocations[keccak256(abi.encodePacked(resetCount, msg.data))] += 1;\n\n\t\tassembly {\n\t\t\treturn(add(0x20, result), mload(result))\n\t\t}\n\t}\n}\n", - "sourcePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "ast": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4351 - ], - "MockInterface": [ - 3372 - ] - }, - "id": 4352, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3228, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3372, - "linearizedBaseContracts": [ - 3372 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3233, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3230, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "357:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3229, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "356:25:26" - }, - "returnParameters": { - "id": 3232, - "nodeType": "ParameterList", - "parameters": [], - "src": "390:0:26" - }, - "scope": 3372, - "src": "333:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3235, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3238, - "src": "421:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "421:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "420:15:26" - }, - "returnParameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "444:0:26" - }, - "scope": 3372, - "src": "393:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3243, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3240, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "475:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "474:15:26" - }, - "returnParameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:0:26" - }, - "scope": 3372, - "src": "447:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3248, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3248, - "src": "532:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "532:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "531:18:26" - }, - "returnParameters": { - "id": 3247, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:0:26" - }, - "scope": 3372, - "src": "501:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3251, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3249, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:2:26" - }, - "returnParameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "596:0:26" - }, - "scope": 3372, - "src": "562:35:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3256, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3253, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3256, - "src": "634:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "634:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:25:26" - }, - "returnParameters": { - "id": 3255, - "nodeType": "ParameterList", - "parameters": [], - "src": "667:0:26" - }, - "scope": 3372, - "src": "599:69:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3257, - "nodeType": "ParameterList", - "parameters": [], - "src": "698:2:26" - }, - "returnParameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:26" - }, - "scope": 3372, - "src": "670:40:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3261, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1239:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3260, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1239:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3263, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1262:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3262, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1262:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1238:48:26" - }, - "returnParameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "1295:0:26" - }, - "scope": 3372, - "src": "1212:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3268, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1329:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1329:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3270, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1352:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1352:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:38:26" - }, - "returnParameters": { - "id": 3272, - "nodeType": "ParameterList", - "parameters": [], - "src": "1375:0:26" - }, - "scope": 3372, - "src": "1298:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3280, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1409:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1409:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1432:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1432:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1408:38:26" - }, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "1455:0:26" - }, - "scope": 3372, - "src": "1378:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3287, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3282, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1492:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3281, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1492:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1515:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1515:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:41:26" - }, - "returnParameters": { - "id": 3286, - "nodeType": "ParameterList", - "parameters": [], - "src": "1541:0:26" - }, - "scope": 3372, - "src": "1458:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3292, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3289, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3292, - "src": "1572:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3288, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1572:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1571:23:26" - }, - "returnParameters": { - "id": 3291, - "nodeType": "ParameterList", - "parameters": [], - "src": "1603:0:26" - }, - "scope": 3372, - "src": "1545:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3299, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3294, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1644:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1644:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3296, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1667:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3295, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1667:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1643:48:26" - }, - "returnParameters": { - "id": 3298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1700:0:26" - }, - "scope": 3372, - "src": "1606:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3304, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1735:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3300, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1735:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1734:23:26" - }, - "returnParameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:26" - }, - "scope": 3372, - "src": "1703:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param call ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 3311, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3306, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2183:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2183:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2204:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3307, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2204:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2182:46:26" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "2237:0:26" - }, - "scope": 3372, - "src": "2154:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3318, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2273:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2273:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2294:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2294:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2272:36:26" - }, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "2317:0:26" - }, - "scope": 3372, - "src": "2240:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3325, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3320, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2353:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3319, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2353:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3322, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2374:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3321, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2374:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2352:36:26" - }, - "returnParameters": { - "id": 3324, - "nodeType": "ParameterList", - "parameters": [], - "src": "2397:0:26" - }, - "scope": 3372, - "src": "2320:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3332, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3327, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2436:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3326, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2436:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3329, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2457:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2435:39:26" - }, - "returnParameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "2483:0:26" - }, - "scope": 3372, - "src": "2400:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3337, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3334, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "2516:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3333, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2516:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2515:21:26" - }, - "returnParameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [], - "src": "2545:0:26" - }, - "scope": 3372, - "src": "2487:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3344, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2588:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3338, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2588:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2609:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2609:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2587:46:26" - }, - "returnParameters": { - "id": 3343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2642:0:26" - }, - "scope": 3372, - "src": "2548:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3349, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3346, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "2679:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3345, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2679:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2678:21:26" - }, - "returnParameters": { - "id": 3348, - "nodeType": "ParameterList", - "parameters": [], - "src": "2708:0:26" - }, - "scope": 3372, - "src": "2645:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3354, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:2:26" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3354, - "src": "2859:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3351, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2859:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2858:6:26" - }, - "scope": 3372, - "src": "2814:51:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3361, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3356, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3152:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3355, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3152:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3151:23:26" - }, - "returnParameters": { - "id": 3360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3193:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:6:26" - }, - "scope": 3372, - "src": "3118:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param call ABI encoded calldata (methodId and arguments)", - "id": 3368, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3363, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3415:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3362, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3415:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3414:21:26" - }, - "returnParameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3454:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3454:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3453:6:26" - }, - "scope": 3372, - "src": "3379:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3371, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "3546:2:26" - }, - "returnParameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [], - "src": "3557:0:26" - }, - "scope": 3372, - "src": "3532:26:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "25:3535:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3373, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3372, - "src": "3635:13:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3372", - "typeString": "contract MockInterface" - } - }, - "id": 3374, - "nodeType": "InheritanceSpecifier", - "src": "3635:13:26" - } - ], - "contractDependencies": [ - 3372 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4351, - "linearizedBaseContracts": [ - 4351, - 3372 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3378, - "members": [ - { - "id": 3375, - "name": "Return", - "nodeType": "EnumValue", - "src": "3668:6:26" - }, - { - "id": 3376, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3676:6:26" - }, - { - "id": 3377, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3684:8:26" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3652:42:26" - }, - { - "constant": true, - "id": 3381, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3698:50:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3379, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3698:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3741:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3384, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3751:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3382, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3751:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:6:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3389, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3799:71:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3799:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3387, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "3855:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3845:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3845:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3392, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3873:51:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3390, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3396, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3989:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3395, - "keyType": { - "id": 3393, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3997:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3989:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3394, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4008:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3400, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4031:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3399, - "keyType": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4039:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4031:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3398, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4048:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4078:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3403, - "keyType": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4086:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4078:23:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3402, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4095:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3408, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4125:46:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3407, - "keyType": { - "id": 3405, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4133:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4125:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3406, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4142:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3412, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4174:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3411, - "keyType": { - "id": 3409, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4182:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4174:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3416, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4222:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3415, - "keyType": { - "id": 3413, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4230:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4222:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3414, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4240:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3420, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4264:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3419, - "keyType": { - "id": 3417, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4272:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4264:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3418, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4282:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3424, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4312:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3423, - "keyType": { - "id": 3421, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4320:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4312:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3428, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4360:48:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3427, - "keyType": { - "id": 3425, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4368:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4360:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3426, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4378:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4411:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3431, - "keyType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4419:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4411:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4430:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4459:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3433, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4459:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4487:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3435, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4487:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3438, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4515:28:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3437, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4515:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3440, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4546:16:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4546:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3442, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4565:15:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4565:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3457, - "nodeType": "Block", - "src": "4605:114:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3445, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4609:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3447, - "indexExpression": { - "argumentTypes": null, - "id": 3446, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4623:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4609:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3448, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "4643:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4609:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "4609:48:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3451, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4661:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3453, - "indexExpression": { - "argumentTypes": null, - "id": 3452, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4675:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4661:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4697:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4661:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3456, - "nodeType": "ExpressionStatement", - "src": "4661:54:26" - } - ] - }, - "documentation": null, - "id": 3458, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3443, - "nodeType": "ParameterList", - "parameters": [], - "src": "4595:2:26" - }, - "returnParameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [], - "src": "4605:0:26" - }, - "scope": 4351, - "src": "4584:135:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3491, - "nodeType": "Block", - "src": "4776:196:26", - "statements": [ - { - "assignments": [ - 3464 - ], - "declarations": [ - { - "constant": false, - "id": 3464, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "4780:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3463, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4780:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3468, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3466, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4809:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3465, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "4799:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4780:34:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3469, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4822:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3471, - "indexExpression": { - "argumentTypes": null, - "id": 3470, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4836:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4856:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4822:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3490, - "nodeType": "IfStatement", - "src": "4818:151:26", - "trueBody": { - "id": 3489, - "nodeType": "Block", - "src": "4859:110:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3475, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4864:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3477, - "indexExpression": { - "argumentTypes": null, - "id": 3476, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4878:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4864:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3478, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4890:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3480, - "indexExpression": { - "argumentTypes": null, - "id": 3479, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4904:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4890:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4864:57:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "4864:57:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3483, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4926:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3485, - "indexExpression": { - "argumentTypes": null, - "id": 3484, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4940:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4926:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3486, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4960:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4926:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3488, - "nodeType": "ExpressionStatement", - "src": "4926:38:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3460, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "4749:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4749:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:26" - }, - "returnParameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [], - "src": "4776:0:26" - }, - "scope": 4351, - "src": "4722:250:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3518, - "nodeType": "Block", - "src": "5027:161:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5035:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5049:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5035:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5062:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "5035:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3517, - "nodeType": "IfStatement", - "src": "5031:154:26", - "trueBody": { - "id": 3516, - "nodeType": "Block", - "src": "5067:118:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3502, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5072:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3504, - "indexExpression": { - "argumentTypes": null, - "id": 3503, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5086:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5072:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3505, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5098:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3507, - "indexExpression": { - "argumentTypes": null, - "id": 3506, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5112:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5098:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5072:59:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "5072:59:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3510, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5136:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3512, - "indexExpression": { - "argumentTypes": null, - "id": 3511, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5150:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5136:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3513, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5172:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5136:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "5136:44:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3519, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3494, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "5002:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3493, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5002:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5001:17:26" - }, - "returnParameters": { - "id": 3496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5027:0:26" - }, - "scope": 4351, - "src": "4975:213:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3533, - "nodeType": "Block", - "src": "5248:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3524, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5252:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3525, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5271:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5271:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5252:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "5252:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3529, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5290:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3530, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "5312:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5290:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3532, - "nodeType": "ExpressionStatement", - "src": "5290:30:26" - } - ] - }, - "documentation": null, - "id": 3534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3521, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3534, - "src": "5216:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5216:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5215:23:26" - }, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [], - "src": "5248:0:26" - }, - "scope": 4351, - "src": "5191:133:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3543, - "nodeType": "Block", - "src": "5385:33:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3536, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5389:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5389:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3542, - "nodeType": "ExpressionStatement", - "src": "5389:25:26" - } - ] - }, - "documentation": null, - "id": 3544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3536, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "5351:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3535, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5351:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5350:25:26" - }, - "returnParameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [], - "src": "5385:0:26" - }, - "scope": 4351, - "src": "5327:91:26", - "stateMutability": "nonpayable", - "superFunction": 3233, - "visibility": "external" - }, - { - "body": { - "id": 3562, - "nodeType": "Block", - "src": "5473:74:26", - "statements": [ - { - "assignments": [ - 3550 - ], - "declarations": [ - { - "constant": false, - "id": 3550, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "5477:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3549, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5477:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3551, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "5489:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5504:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5489:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5500:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5477:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3558, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "5537:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3557, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5525:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5525:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3556, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5509:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5509:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3561, - "nodeType": "ExpressionStatement", - "src": "5509:34:26" - } - ] - }, - "documentation": null, - "id": 3563, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3546, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3563, - "src": "5449:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5449:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5448:15:26" - }, - "returnParameters": { - "id": 3548, - "nodeType": "ParameterList", - "parameters": [], - "src": "5473:0:26" - }, - "scope": 4351, - "src": "5421:126:26", - "stateMutability": "nonpayable", - "superFunction": 3238, - "visibility": "external" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "5602:47:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3570, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3565, - "src": "5634:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3569, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5622:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5622:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3568, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5606:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:38:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3573, - "nodeType": "ExpressionStatement", - "src": "5606:38:26" - } - ] - }, - "documentation": null, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3565, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3575, - "src": "5578:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5578:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5577:15:26" - }, - "returnParameters": { - "id": 3567, - "nodeType": "ParameterList", - "parameters": [], - "src": "5602:0:26" - }, - "scope": 4351, - "src": "5550:99:26", - "stateMutability": "nonpayable", - "superFunction": 3243, - "visibility": "external" - }, - { - "body": { - "id": 3586, - "nodeType": "Block", - "src": "5710:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3582, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3577, - "src": "5745:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3581, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "5730:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3580, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5714:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3585, - "nodeType": "ExpressionStatement", - "src": "5714:41:26" - } - ] - }, - "documentation": null, - "id": 3587, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3577, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3587, - "src": "5683:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5683:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5682:18:26" - }, - "returnParameters": { - "id": 3579, - "nodeType": "ParameterList", - "parameters": [], - "src": "5710:0:26" - }, - "scope": 4351, - "src": "5652:107:26", - "stateMutability": "nonpayable", - "superFunction": 3248, - "visibility": "external" - }, - { - "body": { - "id": 3599, - "nodeType": "Block", - "src": "5797:72:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3590, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5801:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5820:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5820:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5801:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3594, - "nodeType": "ExpressionStatement", - "src": "5801:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3595, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5839:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5863:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5839:26:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5839:26:26" - } - ] - }, - "documentation": null, - "id": 3600, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [], - "src": "5785:2:26" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "5797:0:26" - }, - "scope": 4351, - "src": "5762:107:26", - "stateMutability": "nonpayable", - "superFunction": 3251, - "visibility": "external" - }, - { - "body": { - "id": 3614, - "nodeType": "Block", - "src": "5941:77:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3605, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5945:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5964:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5964:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5945:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3609, - "nodeType": "ExpressionStatement", - "src": "5945:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3610, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5983:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3611, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "6007:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5983:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "5983:31:26" - } - ] - }, - "documentation": null, - "id": 3615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3602, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3615, - "src": "5907:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3601, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5907:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5906:25:26" - }, - "returnParameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [], - "src": "5941:0:26" - }, - "scope": 4351, - "src": "5872:146:26", - "stateMutability": "nonpayable", - "superFunction": 3256, - "visibility": "external" - }, - { - "body": { - "id": 3623, - "nodeType": "Block", - "src": "6061:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3618, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "6065:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3619, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6084:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6084:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6065:36:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3622, - "nodeType": "ExpressionStatement", - "src": "6065:36:26" - } - ] - }, - "documentation": null, - "id": 3624, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3616, - "nodeType": "ParameterList", - "parameters": [], - "src": "6049:2:26" - }, - "returnParameters": { - "id": 3617, - "nodeType": "ParameterList", - "parameters": [], - "src": "6061:0:26" - }, - "scope": 4351, - "src": "6021:84:26", - "stateMutability": "nonpayable", - "superFunction": 3259, - "visibility": "external" - }, - { - "body": { - "id": 3648, - "nodeType": "Block", - "src": "6189:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3631, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "6193:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3633, - "indexExpression": { - "argumentTypes": null, - "id": 3632, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6211:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6193:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3634, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6219:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6219:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6193:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "6193:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3638, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "6238:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "id": 3639, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6259:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6238:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3641, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3628, - "src": "6267:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6238:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "6238:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6297:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3644, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "6279:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6279:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "6279:23:26" - } - ] - }, - "documentation": null, - "id": 3649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3626, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6138:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3628, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6157:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3627, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6157:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6137:42:26" - }, - "returnParameters": { - "id": 3630, - "nodeType": "ParameterList", - "parameters": [], - "src": "6189:0:26" - }, - "scope": 4351, - "src": "6108:198:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3661, - "nodeType": "Block", - "src": "6394:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3657, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "6419:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3658, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3653, - "src": "6425:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3656, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6398:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6398:36:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3660, - "nodeType": "ExpressionStatement", - "src": "6398:36:26" - } - ] - }, - "documentation": null, - "id": 3662, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6338:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6338:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6359:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3652, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6359:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6337:46:26" - }, - "returnParameters": { - "id": 3655, - "nodeType": "ParameterList", - "parameters": [], - "src": "6394:0:26" - }, - "scope": 4351, - "src": "6309:129:26", - "stateMutability": "nonpayable", - "superFunction": 3311, - "visibility": "external" - }, - { - "body": { - "id": 3683, - "nodeType": "Block", - "src": "6519:85:26", - "statements": [ - { - "assignments": [ - 3670 - ], - "declarations": [ - { - "constant": false, - "id": 3670, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3683, - "src": "6523:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3669, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6523:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3675, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3671, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3666, - "src": "6535:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6550:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6535:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6546:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6523:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3677, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3664, - "src": "6576:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3679, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "6594:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3678, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6582:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6582:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3676, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6555:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6555:45:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3682, - "nodeType": "ExpressionStatement", - "src": "6555:45:26" - } - ] - }, - "documentation": null, - "id": 3684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3664, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6474:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3663, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6474:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3666, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6495:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3665, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6495:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:36:26" - }, - "returnParameters": { - "id": 3668, - "nodeType": "ParameterList", - "parameters": [], - "src": "6519:0:26" - }, - "scope": 4351, - "src": "6441:163:26", - "stateMutability": "nonpayable", - "superFunction": 3318, - "visibility": "external" - }, - { - "body": { - "id": 3698, - "nodeType": "Block", - "src": "6685:57:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3686, - "src": "6710:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3694, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "6728:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3693, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6716:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6716:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3691, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6689:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6689:49:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "6689:49:26" - } - ] - }, - "documentation": null, - "id": 3699, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3686, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6640:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3685, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6640:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3688, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6661:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3687, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6661:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6639:36:26" - }, - "returnParameters": { - "id": 3690, - "nodeType": "ParameterList", - "parameters": [], - "src": "6685:0:26" - }, - "scope": 4351, - "src": "6607:135:26", - "stateMutability": "nonpayable", - "superFunction": 3325, - "visibility": "external" - }, - { - "body": { - "id": 3713, - "nodeType": "Block", - "src": "6829:60:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "6854:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6875:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3708, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "6860:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6860:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3706, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6833:52:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3712, - "nodeType": "ExpressionStatement", - "src": "6833:52:26" - } - ] - }, - "documentation": null, - "id": 3714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6781:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3700, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6781:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3703, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6802:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6802:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6780:39:26" - }, - "returnParameters": { - "id": 3705, - "nodeType": "ParameterList", - "parameters": [], - "src": "6829:0:26" - }, - "scope": 4351, - "src": "6745:144:26", - "stateMutability": "nonpayable", - "superFunction": 3332, - "visibility": "external" - }, - { - "body": { - "id": 3744, - "nodeType": "Block", - "src": "6970:164:26", - "statements": [ - { - "assignments": [ - 3722 - ], - "declarations": [ - { - "constant": false, - "id": 3722, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "6974:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3721, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6974:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3724, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7004:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3723, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "6990:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6974:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7013:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7031:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7013:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7041:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7041:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7013:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "7013:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7060:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7081:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7060:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3737, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3718, - "src": "7091:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "7060:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "7060:39:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3741, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7121:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3740, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "7103:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7103:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3743, - "nodeType": "ExpressionStatement", - "src": "7103:25:26" - } - ] - }, - "documentation": null, - "id": 3745, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6920:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3715, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6920:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3718, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6939:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3717, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6939:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6919:42:26" - }, - "returnParameters": { - "id": 3720, - "nodeType": "ParameterList", - "parameters": [], - "src": "6970:0:26" - }, - "scope": 4351, - "src": "6892:242:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3757, - "nodeType": "Block", - "src": "7219:42:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3747, - "src": "7242:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3754, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3749, - "src": "7248:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3752, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7223:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7223:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "7223:34:26" - } - ] - }, - "documentation": null, - "id": 3758, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3747, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7164:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7164:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3749, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7185:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3748, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7185:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7163:46:26" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "7219:0:26" - }, - "scope": 4351, - "src": "7137:124:26", - "stateMutability": "nonpayable", - "superFunction": 3266, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "7340:83:26", - "statements": [ - { - "assignments": [ - 3766 - ], - "declarations": [ - { - "constant": false, - "id": 3766, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3779, - "src": "7344:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7344:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3771, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3767, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7356:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7371:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7356:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7367:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7344:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3773, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3760, - "src": "7395:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3775, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "7413:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3774, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7401:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3772, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7376:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:43:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "7376:43:26" - } - ] - }, - "documentation": null, - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3760, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7295:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3759, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7295:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7316:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3761, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7316:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7294:36:26" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7340:0:26" - }, - "scope": 4351, - "src": "7264:159:26", - "stateMutability": "nonpayable", - "superFunction": 3273, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "7502:55:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3788, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "7525:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3790, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3784, - "src": "7543:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3789, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7531:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7531:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3787, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7506:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7506:47:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "7506:47:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7457:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3781, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7457:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3784, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7478:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7478:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7456:36:26" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "7502:0:26" - }, - "scope": 4351, - "src": "7426:131:26", - "stateMutability": "nonpayable", - "superFunction": 3280, - "visibility": "external" - }, - { - "body": { - "id": 3809, - "nodeType": "Block", - "src": "7642:58:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3803, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "7665:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3805, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "7686:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3804, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "7671:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7671:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3802, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7646:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7646:50:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3808, - "nodeType": "ExpressionStatement", - "src": "7646:50:26" - } - ] - }, - "documentation": null, - "id": 3810, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7594:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7594:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7615:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7615:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7593:39:26" - }, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [], - "src": "7642:0:26" - }, - "scope": 4351, - "src": "7560:140:26", - "stateMutability": "nonpayable", - "superFunction": 3287, - "visibility": "external" - }, - { - "body": { - "id": 3832, - "nodeType": "Block", - "src": "7762:112:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3815, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "7766:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3817, - "indexExpression": { - "argumentTypes": null, - "id": 3816, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7766:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7792:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7792:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7766:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3821, - "nodeType": "ExpressionStatement", - "src": "7766:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "7811:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7833:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7811:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7841:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7811:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3827, - "nodeType": "ExpressionStatement", - "src": "7811:32:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3829, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7865:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3828, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "7847:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7847:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3831, - "nodeType": "ExpressionStatement", - "src": "7847:23:26" - } - ] - }, - "documentation": null, - "id": 3833, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3812, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "7732:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3811, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7732:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7731:21:26" - }, - "returnParameters": { - "id": 3814, - "nodeType": "ParameterList", - "parameters": [], - "src": "7762:0:26" - }, - "scope": 4351, - "src": "7703:171:26", - "stateMutability": "nonpayable", - "superFunction": 3337, - "visibility": "external" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "7934:121:26", - "statements": [ - { - "assignments": [ - 3839 - ], - "declarations": [ - { - "constant": false, - "id": 3839, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "7938:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3838, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7938:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3843, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7968:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3840, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "7954:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7954:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7938:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7977:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "id": 3845, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "7995:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7977:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8005:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8005:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7977:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3850, - "nodeType": "ExpressionStatement", - "src": "7977:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3852, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "8042:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3851, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8024:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8024:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3854, - "nodeType": "ExpressionStatement", - "src": "8024:25:26" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3835, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "7904:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3834, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7904:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7903:21:26" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [], - "src": "7934:0:26" - }, - "scope": 4351, - "src": "7877:178:26", - "stateMutability": "nonpayable", - "superFunction": 3292, - "visibility": "external" - }, - { - "body": { - "id": 3880, - "nodeType": "Block", - "src": "8153:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3863, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8157:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3865, - "indexExpression": { - "argumentTypes": null, - "id": 3864, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8175:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8157:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3866, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8183:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8157:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3869, - "nodeType": "ExpressionStatement", - "src": "8157:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3870, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "8202:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3872, - "indexExpression": { - "argumentTypes": null, - "id": 3871, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8224:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8202:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3873, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "8232:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8202:37:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3875, - "nodeType": "ExpressionStatement", - "src": "8202:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3877, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8261:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3876, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8243:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8243:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3879, - "nodeType": "ExpressionStatement", - "src": "8243:23:26" - } - ] - }, - "documentation": null, - "id": 3881, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8098:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3857, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8098:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8119:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3859, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8119:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8097:46:26" - }, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "8153:0:26" - }, - "scope": 4351, - "src": "8058:212:26", - "stateMutability": "nonpayable", - "superFunction": 3344, - "visibility": "external" - }, - { - "body": { - "id": 3911, - "nodeType": "Block", - "src": "8366:165:26", - "statements": [ - { - "assignments": [ - 3889 - ], - "declarations": [ - { - "constant": false, - "id": 3889, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3911, - "src": "8370:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3888, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3893, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3891, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3883, - "src": "8400:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3890, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8386:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8386:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8409:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3896, - "indexExpression": { - "argumentTypes": null, - "id": 3895, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8427:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8409:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3897, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8437:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8437:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8409:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3900, - "nodeType": "ExpressionStatement", - "src": "8409:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8456:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3903, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8479:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8456:30:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3904, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "8489:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8456:40:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3906, - "nodeType": "ExpressionStatement", - "src": "8456:40:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3908, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8518:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3907, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8500:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8500:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3910, - "nodeType": "ExpressionStatement", - "src": "8500:25:26" - } - ] - }, - "documentation": null, - "id": 3912, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3883, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8311:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3882, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8311:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3885, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8332:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3884, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8332:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8310:46:26" - }, - "returnParameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [], - "src": "8366:0:26" - }, - "scope": 4351, - "src": "8273:258:26", - "stateMutability": "nonpayable", - "superFunction": 3299, - "visibility": "external" - }, - { - "body": { - "id": 3928, - "nodeType": "Block", - "src": "8598:78:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3917, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8602:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3919, - "indexExpression": { - "argumentTypes": null, - "id": 3918, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8620:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8602:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3920, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8628:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8628:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8602:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3923, - "nodeType": "ExpressionStatement", - "src": "8602:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3925, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8667:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3924, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8649:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8649:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3927, - "nodeType": "ExpressionStatement", - "src": "8649:23:26" - } - ] - }, - "documentation": null, - "id": 3929, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3914, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3929, - "src": "8568:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3913, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8568:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8567:21:26" - }, - "returnParameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [], - "src": "8598:0:26" - }, - "scope": 4351, - "src": "8534:142:26", - "stateMutability": "nonpayable", - "superFunction": 3349, - "visibility": "external" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "8741:122:26", - "statements": [ - { - "assignments": [ - 3935 - ], - "declarations": [ - { - "constant": false, - "id": 3935, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3951, - "src": "8745:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3934, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8745:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3939, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3937, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3931, - "src": "8775:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3936, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8761:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8761:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8745:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3940, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8784:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3942, - "indexExpression": { - "argumentTypes": null, - "id": 3941, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8802:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8784:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8812:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8812:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8784:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3946, - "nodeType": "ExpressionStatement", - "src": "8784:45:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8851:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3947, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8833:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8833:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "8833:25:26" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3931, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "8711:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8711:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8710:21:26" - }, - "returnParameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "8741:0:26" - }, - "scope": 4351, - "src": "8679:184:26", - "stateMutability": "nonpayable", - "superFunction": 3304, - "visibility": "external" - }, - { - "body": { - "id": 3959, - "nodeType": "Block", - "src": "8917:26:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3957, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "8928:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3956, - "id": 3958, - "nodeType": "Return", - "src": "8921:18:26" - } - ] - }, - "documentation": null, - "id": 3960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3953, - "nodeType": "ParameterList", - "parameters": [], - "src": "8890:2:26" - }, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3960, - "src": "8911:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3954, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8911:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8910:6:26" - }, - "scope": 4351, - "src": "8866:77:26", - "stateMutability": "nonpayable", - "superFunction": 3354, - "visibility": "external" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "9025:122:26", - "statements": [ - { - "assignments": [ - 3968 - ], - "declarations": [ - { - "constant": false, - "id": 3968, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3983, - "src": "9029:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3967, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9029:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3972, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3970, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "9059:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3969, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "9045:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9045:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9029:35:26" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3973, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "9075:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3977, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9122:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3978, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "9134:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3975, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9105:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9105:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9105:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3974, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9095:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:47:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9075:68:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3966, - "id": 3982, - "nodeType": "Return", - "src": "9068:75:26" - } - ] - }, - "documentation": null, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3962, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "8980:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8980:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8979:21:26" - }, - "returnParameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3965, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "9019:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3964, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9019:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9018:6:26" - }, - "scope": 4351, - "src": "8946:201:26", - "stateMutability": "nonpayable", - "superFunction": 3361, - "visibility": "external" - }, - { - "body": { - "id": 4001, - "nodeType": "Block", - "src": "9231:81:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3991, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "9242:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3999, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3995, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9289:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3996, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "9301:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3993, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9272:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9272:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9272:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3992, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9262:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9262:45:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9242:66:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3990, - "id": 4000, - "nodeType": "Return", - "src": "9235:73:26" - } - ] - }, - "documentation": null, - "id": 4002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3986, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9186:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3985, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9186:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9185:21:26" - }, - "returnParameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3989, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9225:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9225:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9224:6:26" - }, - "scope": 4351, - "src": "9150:162:26", - "stateMutability": "nonpayable", - "superFunction": 3368, - "visibility": "external" - }, - { - "body": { - "id": 4134, - "nodeType": "Block", - "src": "9341:1265:26", - "statements": [ - { - "assignments": [ - 4006 - ], - "declarations": [ - { - "constant": false, - "id": 4006, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9380:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4005, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9380:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4010, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4007, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9404:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4009, - "indexExpression": { - "argumentTypes": null, - "id": 4008, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9418:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9404:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9380:55:26" - }, - { - "assignments": [ - 4012 - ], - "declarations": [ - { - "constant": false, - "id": 4012, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9439:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4011, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9439:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4016, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4014, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9468:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4013, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9458:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9458:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9439:38:26" - }, - { - "body": { - "id": 4057, - "nodeType": "Block", - "src": "9549:355:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4020, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "9580:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4022, - "indexExpression": { - "argumentTypes": null, - "id": 4021, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9598:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9580:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "9610:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9610:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9580:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4026, - "nodeType": "ExpressionStatement", - "src": "9580:45:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4027, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "9630:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4029, - "indexExpression": { - "argumentTypes": null, - "id": 4028, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9651:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9630:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9630:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4032, - "nodeType": "ExpressionStatement", - "src": "9630:38:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4033, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "9673:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4035, - "indexExpression": { - "argumentTypes": null, - "id": 4034, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9695:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9673:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9707:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9673:36:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4038, - "nodeType": "ExpressionStatement", - "src": "9673:36:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4039, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9744:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4040, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9755:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4042, - "indexExpression": { - "argumentTypes": null, - "id": 4041, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9769:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9755:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9744:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4044, - "nodeType": "ExpressionStatement", - "src": "9744:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4045, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9813:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4047, - "indexExpression": { - "argumentTypes": null, - "id": 4046, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9827:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9839:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4050, - "nodeType": "ExpressionStatement", - "src": "9813:28:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4051, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9869:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4053, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9890:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4052, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9880:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9880:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9869:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 4056, - "nodeType": "ExpressionStatement", - "src": "9869:30:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4017, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9516:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4018, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "9528:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9516:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4058, - "nodeType": "WhileStatement", - "src": "9510:394:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4059, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9923:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4061, - "indexExpression": { - "argumentTypes": null, - "id": 4060, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9937:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9923:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4062, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "9957:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9923:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4064, - "nodeType": "ExpressionStatement", - "src": "9923:48:26" - }, - { - "assignments": [ - 4066 - ], - "declarations": [ - { - "constant": false, - "id": 4066, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "10009:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4065, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4070, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4067, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10030:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4069, - "indexExpression": { - "argumentTypes": null, - "id": 4068, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10044:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10030:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10009:54:26" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "10108:316:26", - "statements": [ - { - "assignments": [ - 4075 - ], - "declarations": [ - { - "constant": false, - "id": 4075, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "10113:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10113:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4077, - "initialValue": { - "argumentTypes": null, - "id": 4076, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10137:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10113:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4078, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "10153:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4080, - "indexExpression": { - "argumentTypes": null, - "id": 4079, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10171:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10153:33:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4081, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10189:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10189:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10153:51:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "10153:51:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4085, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "10209:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4087, - "indexExpression": { - "argumentTypes": null, - "id": 4086, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10230:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10209:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10209:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4090, - "nodeType": "ExpressionStatement", - "src": "10209:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4091, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "10258:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4093, - "indexExpression": { - "argumentTypes": null, - "id": 4092, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10281:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10258:38:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10299:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10258:43:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4096, - "nodeType": "ExpressionStatement", - "src": "10258:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4097, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10306:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4098, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10320:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4100, - "indexExpression": { - "argumentTypes": null, - "id": 4099, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10334:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10320:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10306:43:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4102, - "nodeType": "ExpressionStatement", - "src": "10306:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4103, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10384:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4105, - "indexExpression": { - "argumentTypes": null, - "id": 4104, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10398:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10384:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10416:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "10384:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4108, - "nodeType": "ExpressionStatement", - "src": "10384:35:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4071, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10073:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4072, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10088:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10073:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4110, - "nodeType": "WhileStatement", - "src": "10067:357:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4111, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10443:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4113, - "indexExpression": { - "argumentTypes": null, - "id": 4112, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10457:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10443:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4114, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10479:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10443:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4116, - "nodeType": "ExpressionStatement", - "src": "10443:54:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4117, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "10502:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10524:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10502:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4120, - "nodeType": "ExpressionStatement", - "src": "10502:24:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4121, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "10530:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4122, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10549:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10549:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10530:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4125, - "nodeType": "ExpressionStatement", - "src": "10530:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4126, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "10568:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10582:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10568:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4129, - "nodeType": "ExpressionStatement", - "src": "10568:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4130, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "10587:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10601:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10587:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4133, - "nodeType": "ExpressionStatement", - "src": "10587:15:26" - } - ] - }, - "documentation": null, - "id": 4135, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4003, - "nodeType": "ParameterList", - "parameters": [], - "src": "9329:2:26" - }, - "returnParameters": { - "id": 4004, - "nodeType": "ParameterList", - "parameters": [], - "src": "9341:0:26" - }, - "scope": 4351, - "src": "9315:1291:26", - "stateMutability": "nonpayable", - "superFunction": 3371, - "visibility": "external" - }, - { - "body": { - "id": 4145, - "nodeType": "Block", - "src": "10638:157:26", - "statements": [ - { - "body": { - "id": 4143, - "nodeType": "Block", - "src": "10654:138:26", - "statements": [ - { - "assignments": [ - 4140 - ], - "declarations": [ - { - "constant": false, - "id": 4140, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 4143, - "src": "10659:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4139, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10659:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4141, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10659:6:26" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 4140, - "isOffset": false, - "isSlot": false, - "src": "10730:1:26", - "valueSize": 1 - } - } - ], - "id": 4142, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10670:122:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10648:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 4144, - "nodeType": "WhileStatement", - "src": "10642:150:26" - } - ] - }, - "documentation": null, - "id": 4146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4136, - "nodeType": "ParameterList", - "parameters": [], - "src": "10627:2:26" - }, - "returnParameters": { - "id": 4137, - "nodeType": "ParameterList", - "parameters": [], - "src": "10638:0:26" - }, - "scope": 4351, - "src": "10609:186:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4185, - "nodeType": "Block", - "src": "10867:122:26", - "statements": [ - { - "assignments": [ - 4154 - ], - "declarations": [ - { - "constant": false, - "id": 4154, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 4185, - "src": "10873:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4153, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10873:10:26" - }, - { - "body": { - "id": 4181, - "nodeType": "Block", - "src": "10918:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4166, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10926:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4168, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4148, - "src": "10940:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4170, - "indexExpression": { - "argumentTypes": null, - "id": 4169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10942:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10940:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10947:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10940:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10933:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10933:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4174, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10957:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10961:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10957:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4177, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10933:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10926:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4180, - "nodeType": "ExpressionStatement", - "src": "10926:37:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4160, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10906:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10910:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10906:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4182, - "initializationExpression": { - "assignments": [ - 4157 - ], - "declarations": [ - { - "constant": false, - "id": 4157, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4182, - "src": "10894:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10894:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4159, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10903:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10894:10:26" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10913:3:26", - "subExpression": { - "argumentTypes": null, - "id": 4163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10913:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4165, - "nodeType": "ExpressionStatement", - "src": "10913:3:26" - }, - "nodeType": "ForStatement", - "src": "10889:81:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4183, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10982:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 4152, - "id": 4184, - "nodeType": "Return", - "src": "10975:10:26" - } - ] - }, - "documentation": null, - "id": 4186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4148, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10821:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10821:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10820:16:26" - }, - "returnParameters": { - "id": 4152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10859:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4150, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10859:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10858:8:26" - }, - "scope": 4351, - "src": "10798:191:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4194, - "nodeType": "Block", - "src": "11064:189:26", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 4191, - "isOffset": false, - "isSlot": false, - "src": "11237:1:26", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 4188, - "isOffset": false, - "isSlot": false, - "src": "11190:1:26", - "valueSize": 1 - } - } - ], - "id": 4193, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "11071:182:26" - } - ] - }, - "documentation": null, - "id": 4195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4188, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11016:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11016:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11015:11:26" - }, - "returnParameters": { - "id": 4192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4191, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11049:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4190, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11049:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11048:16:26" - }, - "scope": 4351, - "src": "10992:261:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4210, - "nodeType": "Block", - "src": "11326:68:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4202, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4200, - "src": "11333:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 4205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11347:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11337:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4203, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11341:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11337:13:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "11333:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4208, - "nodeType": "ExpressionStatement", - "src": "11333:17:26" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 4197, - "isOffset": false, - "isSlot": false, - "src": "11387:1:26", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 4200, - "isOffset": false, - "isSlot": false, - "src": "11379:1:26", - "valueSize": 1 - } - } - ], - "id": 4209, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "11357:37:26" - } - ] - }, - "documentation": null, - "id": 4211, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4197, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11277:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11277:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11276:11:26" - }, - "returnParameters": { - "id": 4201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4200, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11310:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4199, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11310:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11309:16:26" - }, - "scope": 4351, - "src": "11256:138:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4349, - "nodeType": "Block", - "src": "11425:1178:26", - "statements": [ - { - "assignments": [ - 4215 - ], - "declarations": [ - { - "constant": false, - "id": 4215, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11429:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4214, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11429:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4216, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11429:15:26" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 4215, - "isOffset": false, - "isSlot": false, - "src": "11462:8:26", - "valueSize": 1 - } - } - ], - "id": 4217, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11448:94:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4218, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11544:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11562:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11544:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4222, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11575:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11575:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11544:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4233, - "nodeType": "IfStatement", - "src": "11540:101:26", - "trueBody": { - "id": 4232, - "nodeType": "Block", - "src": "11592:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4226, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "11604:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4229, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4227, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11626:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11626:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11604:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4225, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11597:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11597:39:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4231, - "nodeType": "ExpressionStatement", - "src": "11597:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4234, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11648:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4237, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4235, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11666:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11666:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11648:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4238, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11679:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11679:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11648:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4245, - "nodeType": "IfStatement", - "src": "11644:75:26", - "trueBody": { - "id": 4244, - "nodeType": "Block", - "src": "11698:21:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4241, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "11703:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11703:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4243, - "nodeType": "ExpressionStatement", - "src": "11703:11:26" - } - ] - } - }, - { - "assignments": [ - 4247 - ], - "declarations": [ - { - "constant": false, - "id": 4247, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11722:19:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4246, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11722:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4248, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "11744:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11765:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11765:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11744:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11722:52:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4253, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "11819:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11819:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11836:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11819:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4289, - "nodeType": "IfStatement", - "src": "11815:262:26", - "trueBody": { - "id": 4288, - "nodeType": "Block", - "src": "11839:238:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4257, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11848:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4259, - "indexExpression": { - "argumentTypes": null, - "id": 4258, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11866:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11848:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4260, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11879:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11879:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11848:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4270, - "nodeType": "IfStatement", - "src": "11844:104:26", - "trueBody": { - "id": 4269, - "nodeType": "Block", - "src": "11896:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4264, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "11909:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4266, - "indexExpression": { - "argumentTypes": null, - "id": 4265, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11932:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11909:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4263, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11902:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11902:40:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4268, - "nodeType": "ExpressionStatement", - "src": "11902:40:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11956:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11974:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11956:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4274, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11987:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11987:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11956:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4281, - "nodeType": "IfStatement", - "src": "11952:77:26", - "trueBody": { - "id": 4280, - "nodeType": "Block", - "src": "12006:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4277, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12012:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12012:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4279, - "nodeType": "ExpressionStatement", - "src": "12012:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4282, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12033:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4283, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "12042:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4285, - "indexExpression": { - "argumentTypes": null, - "id": 4284, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12063:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12042:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12033:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4287, - "nodeType": "ExpressionStatement", - "src": "12033:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4290, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12122:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12122:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12139:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12122:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4318, - "nodeType": "IfStatement", - "src": "12118:218:26", - "trueBody": { - "id": 4317, - "nodeType": "Block", - "src": "12142:194:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4294, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12151:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4295, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12171:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12171:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12151:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4303, - "nodeType": "IfStatement", - "src": "12147:82:26", - "trueBody": { - "id": 4302, - "nodeType": "Block", - "src": "12188:41:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4299, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "12201:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4298, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12194:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12194:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4301, - "nodeType": "ExpressionStatement", - "src": "12194:29:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4304, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12237:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4305, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12257:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12257:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12237:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4312, - "nodeType": "IfStatement", - "src": "12233:66:26", - "trueBody": { - "id": 4311, - "nodeType": "Block", - "src": "12276:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4308, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12282:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12282:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "12282:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4313, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12303:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4314, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "12312:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12303:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4316, - "nodeType": "ExpressionStatement", - "src": "12303:28:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4319, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "12363:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12378:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12363:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4322, - "nodeType": "ExpressionStatement", - "src": "12363:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "12383:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4331, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12430:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4328, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12442:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 4325, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12413:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12413:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12413:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4324, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12403:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12403:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12383:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12457:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12383:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4334, - "nodeType": "ExpressionStatement", - "src": "12383:75:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4335, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "12462:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4339, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12509:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12521:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12521:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4337, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12492:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12492:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12492:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4336, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12482:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12482:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12462:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12536:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12462:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4347, - "nodeType": "ExpressionStatement", - "src": "12462:75:26" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12588:6:26", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12573:6:26", - "valueSize": 1 - } - } - ], - "id": 4348, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12542:61:26" - } - ] - }, - "documentation": null, - "id": 4350, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [], - "src": "11405:2:26" - }, - "returnParameters": { - "id": 4213, - "nodeType": "ParameterList", - "parameters": [], - "src": "11425:0:26" - }, - "scope": 4351, - "src": "11397:1206:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "3610:8995:26" - } - ], - "src": "0:12606:26" - }, - "legacyAST": { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "exportedSymbols": { - "MockContract": [ - 4351 - ], - "MockInterface": [ - 3372 - ] - }, - "id": 4352, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3228, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:26" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 3372, - "linearizedBaseContracts": [ - 3372 - ], - "name": "MockInterface", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when it is called\nwith any calldata that is not mocked more specifically below\n(e.g. using givenMethodReturn).\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3233, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3230, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "357:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3229, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "357:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "356:25:26" - }, - "returnParameters": { - "id": 3232, - "nodeType": "ParameterList", - "parameters": [], - "src": "390:0:26" - }, - "scope": 3372, - "src": "333:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3238, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3235, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3238, - "src": "421:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "421:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "420:15:26" - }, - "returnParameters": { - "id": 3237, - "nodeType": "ParameterList", - "parameters": [], - "src": "444:0:26" - }, - "scope": 3372, - "src": "393:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3243, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3240, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3243, - "src": "475:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "474:15:26" - }, - "returnParameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:0:26" - }, - "scope": 3372, - "src": "447:52:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3248, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3245, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3248, - "src": "532:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "532:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "531:18:26" - }, - "returnParameters": { - "id": 3247, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:0:26" - }, - "scope": 3372, - "src": "501:58:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3251, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3249, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:2:26" - }, - "returnParameters": { - "id": 3250, - "nodeType": "ParameterList", - "parameters": [], - "src": "596:0:26" - }, - "scope": 3372, - "src": "562:35:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3256, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3253, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3256, - "src": "634:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "634:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:25:26" - }, - "returnParameters": { - "id": 3255, - "nodeType": "ParameterList", - "parameters": [], - "src": "667:0:26" - }, - "scope": 3372, - "src": "599:69:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3259, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3257, - "nodeType": "ParameterList", - "parameters": [], - "src": "698:2:26" - }, - "returnParameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:26" - }, - "scope": 3372, - "src": "670:40:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called regardless of arguments. If the methodId and arguments\nare mocked more specifically (using `givenMethodAndArguments`) the latter\nwill take precedence.\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it\n@param response ABI encoded response that will be returned if method is invoked", - "id": 3266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3261, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1239:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3260, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1239:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3263, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3266, - "src": "1262:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3262, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1262:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1238:48:26" - }, - "returnParameters": { - "id": 3265, - "nodeType": "ParameterList", - "parameters": [], - "src": "1295:0:26" - }, - "scope": 3372, - "src": "1212:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3268, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1329:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1329:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3270, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3273, - "src": "1352:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3269, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1352:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:38:26" - }, - "returnParameters": { - "id": 3272, - "nodeType": "ParameterList", - "parameters": [], - "src": "1375:0:26" - }, - "scope": 3372, - "src": "1298:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3280, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1409:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3274, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1409:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3280, - "src": "1432:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1432:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1408:38:26" - }, - "returnParameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [], - "src": "1455:0:26" - }, - "scope": 3372, - "src": "1378:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3287, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3282, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1492:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3281, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1492:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1515:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1515:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1491:41:26" - }, - "returnParameters": { - "id": 3286, - "nodeType": "ParameterList", - "parameters": [], - "src": "1541:0:26" - }, - "scope": 3372, - "src": "1458:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3292, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3289, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3292, - "src": "1572:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3288, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1572:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1571:23:26" - }, - "returnParameters": { - "id": 3291, - "nodeType": "ParameterList", - "parameters": [], - "src": "1603:0:26" - }, - "scope": 3372, - "src": "1545:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3299, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3294, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1644:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1644:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3296, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3299, - "src": "1667:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3295, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1667:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1643:48:26" - }, - "returnParameters": { - "id": 3298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1700:0:26" - }, - "scope": 3372, - "src": "1606:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3304, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3301, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1735:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3300, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1735:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1734:23:26" - }, - "returnParameters": { - "id": 3303, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:26" - }, - "scope": 3372, - "src": "1703:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev After calling this method, the mock will return `response` when the given\nmethodId is called with matching arguments. These exact calldataMocks will take\nprecedence over all other calldataMocks.\n@param call ABI encoded calldata (methodId and arguments)\n@param response ABI encoded response that will be returned if contract is invoked with calldata", - "id": 3311, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3306, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2183:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2183:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3311, - "src": "2204:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3307, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2204:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2182:46:26" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "2237:0:26" - }, - "scope": 3372, - "src": "2154:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3318, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3313, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2273:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3312, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2273:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3315, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "2294:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3314, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2294:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2272:36:26" - }, - "returnParameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [], - "src": "2317:0:26" - }, - "scope": 3372, - "src": "2240:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3325, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3320, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2353:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3319, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2353:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3322, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3325, - "src": "2374:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3321, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2374:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2352:36:26" - }, - "returnParameters": { - "id": 3324, - "nodeType": "ParameterList", - "parameters": [], - "src": "2397:0:26" - }, - "scope": 3372, - "src": "2320:78:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3332, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3327, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2436:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3326, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2436:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3329, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3332, - "src": "2457:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2435:39:26" - }, - "returnParameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "2483:0:26" - }, - "scope": 3372, - "src": "2400:84:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3337, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3334, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "2516:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3333, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2516:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2515:21:26" - }, - "returnParameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [], - "src": "2545:0:26" - }, - "scope": 3372, - "src": "2487:59:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3344, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2588:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3338, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2588:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "2609:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2609:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2587:46:26" - }, - "returnParameters": { - "id": 3343, - "nodeType": "ParameterList", - "parameters": [], - "src": "2642:0:26" - }, - "scope": 3372, - "src": "2548:95:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 3349, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3346, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "2679:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3345, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2679:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2678:21:26" - }, - "returnParameters": { - "id": 3348, - "nodeType": "ParameterList", - "parameters": [], - "src": "2708:0:26" - }, - "scope": 3372, - "src": "2645:64:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times anything has been called on this mock since last reset", - "id": 3354, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3350, - "nodeType": "ParameterList", - "parameters": [], - "src": "2838:2:26" - }, - "returnParameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3354, - "src": "2859:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3351, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2859:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2858:6:26" - }, - "scope": 3372, - "src": "2814:51:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times the given method has been called on this mock since last reset\n@param method ABI encoded methodId. It is valid to pass full calldata (including arguments). The mock will extract the methodId from it", - "id": 3361, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3356, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3152:21:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3355, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3152:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3151:23:26" - }, - "returnParameters": { - "id": 3360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3361, - "src": "3193:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3358, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:6:26" - }, - "scope": 3372, - "src": "3118:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the number of times this mock has been called with the exact calldata since last reset.\n@param call ABI encoded calldata (methodId and arguments)", - "id": 3368, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3363, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3415:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3362, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3415:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3414:21:26" - }, - "returnParameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3368, - "src": "3454:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3454:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3453:6:26" - }, - "scope": 3372, - "src": "3379:81:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Resets all mocked methods and invocation counts.", - "id": 3371, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [], - "src": "3546:2:26" - }, - "returnParameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [], - "src": "3557:0:26" - }, - "scope": 3372, - "src": "3532:26:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "25:3535:26" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3373, - "name": "MockInterface", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3372, - "src": "3635:13:26", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MockInterface_$3372", - "typeString": "contract MockInterface" - } - }, - "id": 3374, - "nodeType": "InheritanceSpecifier", - "src": "3635:13:26" - } - ], - "contractDependencies": [ - 3372 - ], - "contractKind": "contract", - "documentation": "Implementation of the MockInterface.", - "fullyImplemented": true, - "id": 4351, - "linearizedBaseContracts": [ - 4351, - 3372 - ], - "name": "MockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MockContract.MockType", - "id": 3378, - "members": [ - { - "id": 3375, - "name": "Return", - "nodeType": "EnumValue", - "src": "3668:6:26" - }, - { - "id": 3376, - "name": "Revert", - "nodeType": "EnumValue", - "src": "3676:6:26" - }, - { - "id": 3377, - "name": "OutOfGas", - "nodeType": "EnumValue", - "src": "3684:8:26" - } - ], - "name": "MockType", - "nodeType": "EnumDefinition", - "src": "3652:42:26" - }, - { - "constant": true, - "id": 3381, - "name": "MOCKS_LIST_START", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3698:50:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3379, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3698:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3741:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3384, - "name": "MOCKS_LIST_END", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3751:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes" - }, - "typeName": { - "id": 3382, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3751:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786666", - "id": 3383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:6:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_420daffad4b177bce28bead5f76f7bc97ef63c3aae74c496db8ce6aafe9e6513", - "typeString": "literal_string \"0xff\"" - }, - "value": "0xff" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3389, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3799:71:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3385, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3799:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3387, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "3855:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 3386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3845:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3845:25:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "public" - }, - { - "constant": true, - "id": 3392, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3873:51:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3390, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "01", - "id": 3391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:7:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", - "typeString": "literal_string \"\u0001\"" - }, - "value": "\u0001" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 3396, - "name": "calldataMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "3989:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3395, - "keyType": { - "id": 3393, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3997:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "3989:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3394, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4008:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3400, - "name": "calldataMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4031:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "typeName": { - "id": 3399, - "keyType": { - "id": 3397, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4039:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4031:26:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3398, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4048:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "name": "calldataExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4078:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "typeName": { - "id": 3403, - "keyType": { - "id": 3401, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4086:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4078:23:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes => bytes)" - }, - "valueType": { - "id": 3402, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4095:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3408, - "name": "calldataRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4125:46:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "typeName": { - "id": 3407, - "keyType": { - "id": 3405, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4133:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "nodeType": "Mapping", - "src": "4125:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes => string)" - }, - "valueType": { - "id": 3406, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4142:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3412, - "name": "calldataInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4174:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3411, - "keyType": { - "id": 3409, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4182:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4174:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4193:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3416, - "name": "methodIdMocks", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4222:39:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "typeName": { - "id": 3415, - "keyType": { - "id": 3413, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4230:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4222:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - }, - "valueType": { - "id": 3414, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4240:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3420, - "name": "methodIdMockTypes", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4264:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "typeName": { - "id": 3419, - "keyType": { - "id": 3417, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4272:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4264:27:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - }, - "valueType": { - "contractScope": null, - "id": 3418, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4282:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3424, - "name": "methodIdExpectations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4312:45:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "typeName": { - "id": 3423, - "keyType": { - "id": 3421, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4320:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4312:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes)" - }, - "valueType": { - "id": 3422, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4330:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3428, - "name": "methodIdRevertMessages", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4360:48:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "typeName": { - "id": 3427, - "keyType": { - "id": 3425, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4368:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "4360:25:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string)" - }, - "valueType": { - "id": 3426, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4378:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "name": "methodIdInvocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4411:44:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3431, - "keyType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4419:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "4411:24:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3430, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4430:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "name": "fallbackMockType", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4459:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "typeName": { - "contractScope": null, - "id": 3433, - "name": "MockType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3378, - "src": "4459:8:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "fallbackExpectation", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4487:25:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes" - }, - "typeName": { - "id": 3435, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4487:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3438, - "name": "fallbackRevertMessage", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4515:28:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 3437, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4515:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3440, - "name": "invocations", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4546:16:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3439, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4546:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3442, - "name": "resetCount", - "nodeType": "VariableDeclaration", - "scope": 4351, - "src": "4565:15:26", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3441, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4565:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3457, - "nodeType": "Block", - "src": "4605:114:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3445, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4609:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3447, - "indexExpression": { - "argumentTypes": null, - "id": 3446, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4623:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4609:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3448, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "4643:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "4609:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "4609:48:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3451, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "4661:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3453, - "indexExpression": { - "argumentTypes": null, - "id": 3452, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4675:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4661:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3454, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "4697:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "4661:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3456, - "nodeType": "ExpressionStatement", - "src": "4661:54:26" - } - ] - }, - "documentation": null, - "id": 3458, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3443, - "nodeType": "ParameterList", - "parameters": [], - "src": "4595:2:26" - }, - "returnParameters": { - "id": 3444, - "nodeType": "ParameterList", - "parameters": [], - "src": "4605:0:26" - }, - "scope": 4351, - "src": "4584:135:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3491, - "nodeType": "Block", - "src": "4776:196:26", - "statements": [ - { - "assignments": [ - 3464 - ], - "declarations": [ - { - "constant": false, - "id": 3464, - "name": "callHash", - "nodeType": "VariableDeclaration", - "scope": 3491, - "src": "4780:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3463, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4780:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3468, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3466, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4809:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3465, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "4799:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:15:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4780:34:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3469, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4822:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3471, - "indexExpression": { - "argumentTypes": null, - "id": 3470, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4836:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4822:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:30:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4856:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4822:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3490, - "nodeType": "IfStatement", - "src": "4818:151:26", - "trueBody": { - "id": 3489, - "nodeType": "Block", - "src": "4859:110:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3475, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4864:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3477, - "indexExpression": { - "argumentTypes": null, - "id": 3476, - "name": "callHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "4878:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4864:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3478, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4890:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3480, - "indexExpression": { - "argumentTypes": null, - "id": 3479, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4904:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4890:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "4864:57:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "4864:57:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3483, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "4926:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3485, - "indexExpression": { - "argumentTypes": null, - "id": 3484, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "4940:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4926:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3486, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3460, - "src": "4960:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4926:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3488, - "nodeType": "ExpressionStatement", - "src": "4926:38:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3492, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackCalldataMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3460, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3492, - "src": "4749:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3459, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4749:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:26" - }, - "returnParameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [], - "src": "4776:0:26" - }, - "scope": 4351, - "src": "4722:250:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3518, - "nodeType": "Block", - "src": "5027:161:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5035:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5049:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5035:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "307830", - "id": 3500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5062:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "5035:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3517, - "nodeType": "IfStatement", - "src": "5031:154:26", - "trueBody": { - "id": 3516, - "nodeType": "Block", - "src": "5067:118:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3502, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5072:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3504, - "indexExpression": { - "argumentTypes": null, - "id": 3503, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5086:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5072:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3505, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5098:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3507, - "indexExpression": { - "argumentTypes": null, - "id": 3506, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5112:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5098:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5072:59:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3509, - "nodeType": "ExpressionStatement", - "src": "5072:59:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3510, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "5136:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 3512, - "indexExpression": { - "argumentTypes": null, - "id": 3511, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5150:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5136:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3513, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "5172:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "5136:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "5136:44:26" - } - ] - } - } - ] - }, - "documentation": null, - "id": 3519, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trackMethodIdMock", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3494, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "5002:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3493, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5002:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5001:17:26" - }, - "returnParameters": { - "id": 3496, - "nodeType": "ParameterList", - "parameters": [], - "src": "5027:0:26" - }, - "scope": 4351, - "src": "4975:213:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3533, - "nodeType": "Block", - "src": "5248:76:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3524, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5252:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3525, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5271:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5271:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5252:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "5252:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3529, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5290:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3530, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "5312:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5290:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3532, - "nodeType": "ExpressionStatement", - "src": "5290:30:26" - } - ] - }, - "documentation": null, - "id": 3534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3521, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3534, - "src": "5216:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3520, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5216:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5215:23:26" - }, - "returnParameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [], - "src": "5248:0:26" - }, - "scope": 4351, - "src": "5191:133:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3543, - "nodeType": "Block", - "src": "5385:33:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3540, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3536, - "src": "5405:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3539, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5389:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5389:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3542, - "nodeType": "ExpressionStatement", - "src": "5389:25:26" - } - ] - }, - "documentation": null, - "id": 3544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3536, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "5351:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3535, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5351:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5350:25:26" - }, - "returnParameters": { - "id": 3538, - "nodeType": "ParameterList", - "parameters": [], - "src": "5385:0:26" - }, - "scope": 4351, - "src": "5327:91:26", - "stateMutability": "nonpayable", - "superFunction": 3233, - "visibility": "external" - }, - { - "body": { - "id": 3562, - "nodeType": "Block", - "src": "5473:74:26", - "statements": [ - { - "assignments": [ - 3550 - ], - "declarations": [ - { - "constant": false, - "id": 3550, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3562, - "src": "5477:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3549, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5477:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3551, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "5489:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5504:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5489:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5500:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5477:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3558, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3550, - "src": "5537:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3557, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5525:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5525:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3556, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5509:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5509:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3561, - "nodeType": "ExpressionStatement", - "src": "5509:34:26" - } - ] - }, - "documentation": null, - "id": 3563, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3546, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3563, - "src": "5449:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5449:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5448:15:26" - }, - "returnParameters": { - "id": 3548, - "nodeType": "ParameterList", - "parameters": [], - "src": "5473:0:26" - }, - "scope": 4351, - "src": "5421:126:26", - "stateMutability": "nonpayable", - "superFunction": 3238, - "visibility": "external" - }, - { - "body": { - "id": 3574, - "nodeType": "Block", - "src": "5602:47:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3570, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3565, - "src": "5634:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3569, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "5622:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5622:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3568, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5606:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5606:38:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3573, - "nodeType": "ExpressionStatement", - "src": "5606:38:26" - } - ] - }, - "documentation": null, - "id": 3575, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3565, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3575, - "src": "5578:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3564, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5578:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5577:15:26" - }, - "returnParameters": { - "id": 3567, - "nodeType": "ParameterList", - "parameters": [], - "src": "5602:0:26" - }, - "scope": 4351, - "src": "5550:99:26", - "stateMutability": "nonpayable", - "superFunction": 3243, - "visibility": "external" - }, - { - "body": { - "id": 3586, - "nodeType": "Block", - "src": "5710:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3582, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3577, - "src": "5745:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3581, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "5730:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5730:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3580, - "name": "_givenAnyReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3534, - "src": "5714:15:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:41:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3585, - "nodeType": "ExpressionStatement", - "src": "5714:41:26" - } - ] - }, - "documentation": null, - "id": 3587, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3577, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3587, - "src": "5683:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3576, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5683:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5682:18:26" - }, - "returnParameters": { - "id": 3579, - "nodeType": "ParameterList", - "parameters": [], - "src": "5710:0:26" - }, - "scope": 4351, - "src": "5652:107:26", - "stateMutability": "nonpayable", - "superFunction": 3248, - "visibility": "external" - }, - { - "body": { - "id": 3599, - "nodeType": "Block", - "src": "5797:72:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3590, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5801:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3591, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5820:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5820:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5801:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3594, - "nodeType": "ExpressionStatement", - "src": "5801:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3595, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5839:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5863:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "5839:26:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5839:26:26" - } - ] - }, - "documentation": null, - "id": 3600, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [], - "src": "5785:2:26" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "5797:0:26" - }, - "scope": 4351, - "src": "5762:107:26", - "stateMutability": "nonpayable", - "superFunction": 3251, - "visibility": "external" - }, - { - "body": { - "id": 3614, - "nodeType": "Block", - "src": "5941:77:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3605, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "5945:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3606, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "5964:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5964:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "5945:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3609, - "nodeType": "ExpressionStatement", - "src": "5945:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3610, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "5983:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3611, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3602, - "src": "6007:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "5983:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3613, - "nodeType": "ExpressionStatement", - "src": "5983:31:26" - } - ] - }, - "documentation": null, - "id": 3615, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3602, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3615, - "src": "5907:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3601, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5907:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5906:25:26" - }, - "returnParameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [], - "src": "5941:0:26" - }, - "scope": 4351, - "src": "5872:146:26", - "stateMutability": "nonpayable", - "superFunction": 3256, - "visibility": "external" - }, - { - "body": { - "id": 3623, - "nodeType": "Block", - "src": "6061:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3618, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "6065:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3619, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6084:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6084:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6065:36:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3622, - "nodeType": "ExpressionStatement", - "src": "6065:36:26" - } - ] - }, - "documentation": null, - "id": 3624, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenAnyRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3616, - "nodeType": "ParameterList", - "parameters": [], - "src": "6049:2:26" - }, - "returnParameters": { - "id": 3617, - "nodeType": "ParameterList", - "parameters": [], - "src": "6061:0:26" - }, - "scope": 4351, - "src": "6021:84:26", - "stateMutability": "nonpayable", - "superFunction": 3259, - "visibility": "external" - }, - { - "body": { - "id": 3648, - "nodeType": "Block", - "src": "6189:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3631, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "6193:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3633, - "indexExpression": { - "argumentTypes": null, - "id": 3632, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6211:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6193:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3634, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "6219:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6219:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "6193:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "6193:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3638, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "6238:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "id": 3639, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6259:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6238:26:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3641, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3628, - "src": "6267:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "6238:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3643, - "nodeType": "ExpressionStatement", - "src": "6238:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3645, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3626, - "src": "6297:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3644, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "6279:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6279:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "6279:23:26" - } - ] - }, - "documentation": null, - "id": 3649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3626, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6138:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6138:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3628, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "6157:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3627, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6157:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6137:42:26" - }, - "returnParameters": { - "id": 3630, - "nodeType": "ParameterList", - "parameters": [], - "src": "6189:0:26" - }, - "scope": 4351, - "src": "6108:198:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3661, - "nodeType": "Block", - "src": "6394:44:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3657, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "6419:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3658, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3653, - "src": "6425:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3656, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6398:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6398:36:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3660, - "nodeType": "ExpressionStatement", - "src": "6398:36:26" - } - ] - }, - "documentation": null, - "id": 3662, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6338:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6338:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3662, - "src": "6359:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3652, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6359:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6337:46:26" - }, - "returnParameters": { - "id": 3655, - "nodeType": "ParameterList", - "parameters": [], - "src": "6394:0:26" - }, - "scope": 4351, - "src": "6309:129:26", - "stateMutability": "nonpayable", - "superFunction": 3311, - "visibility": "external" - }, - { - "body": { - "id": 3683, - "nodeType": "Block", - "src": "6519:85:26", - "statements": [ - { - "assignments": [ - 3670 - ], - "declarations": [ - { - "constant": false, - "id": 3670, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3683, - "src": "6523:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3669, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6523:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3675, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3671, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3666, - "src": "6535:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6550:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6535:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6546:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6523:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3677, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3664, - "src": "6576:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3679, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "6594:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3678, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6582:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6582:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3676, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6555:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6555:45:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3682, - "nodeType": "ExpressionStatement", - "src": "6555:45:26" - } - ] - }, - "documentation": null, - "id": 3684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3664, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6474:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3663, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6474:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3666, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3684, - "src": "6495:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3665, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6495:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:36:26" - }, - "returnParameters": { - "id": 3668, - "nodeType": "ParameterList", - "parameters": [], - "src": "6519:0:26" - }, - "scope": 4351, - "src": "6441:163:26", - "stateMutability": "nonpayable", - "superFunction": 3318, - "visibility": "external" - }, - { - "body": { - "id": 3698, - "nodeType": "Block", - "src": "6685:57:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3686, - "src": "6710:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3694, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "6728:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3693, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "6716:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6716:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3691, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6689:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6689:49:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "6689:49:26" - } - ] - }, - "documentation": null, - "id": 3699, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3686, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6640:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3685, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6640:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3688, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3699, - "src": "6661:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3687, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6661:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6639:36:26" - }, - "returnParameters": { - "id": 3690, - "nodeType": "ParameterList", - "parameters": [], - "src": "6685:0:26" - }, - "scope": 4351, - "src": "6607:135:26", - "stateMutability": "nonpayable", - "superFunction": 3325, - "visibility": "external" - }, - { - "body": { - "id": 3713, - "nodeType": "Block", - "src": "6829:60:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "6854:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6875:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3708, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "6860:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6860:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3706, - "name": "_givenCalldataReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6833:20:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6833:52:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3712, - "nodeType": "ExpressionStatement", - "src": "6833:52:26" - } - ] - }, - "documentation": null, - "id": 3714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3704, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3701, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6781:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3700, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6781:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3703, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3714, - "src": "6802:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6802:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6780:39:26" - }, - "returnParameters": { - "id": 3705, - "nodeType": "ParameterList", - "parameters": [], - "src": "6829:0:26" - }, - "scope": 4351, - "src": "6745:144:26", - "stateMutability": "nonpayable", - "superFunction": 3332, - "visibility": "external" - }, - { - "body": { - "id": 3744, - "nodeType": "Block", - "src": "6970:164:26", - "statements": [ - { - "assignments": [ - 3722 - ], - "declarations": [ - { - "constant": false, - "id": 3722, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3744, - "src": "6974:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3721, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "6974:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3726, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3724, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7004:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3723, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "6990:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6974:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3727, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7013:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3729, - "indexExpression": { - "argumentTypes": null, - "id": 3728, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7031:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7013:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3730, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7041:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7041:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7013:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3733, - "nodeType": "ExpressionStatement", - "src": "7013:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "7060:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7081:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7060:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3737, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3718, - "src": "7091:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "7060:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 3739, - "nodeType": "ExpressionStatement", - "src": "7060:39:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3741, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3722, - "src": "7121:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3740, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "7103:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7103:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3743, - "nodeType": "ExpressionStatement", - "src": "7103:25:26" - } - ] - }, - "documentation": null, - "id": 3745, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3716, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6920:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3715, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6920:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3718, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3745, - "src": "6939:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3717, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6939:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6919:42:26" - }, - "returnParameters": { - "id": 3720, - "nodeType": "ParameterList", - "parameters": [], - "src": "6970:0:26" - }, - "scope": 4351, - "src": "6892:242:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 3757, - "nodeType": "Block", - "src": "7219:42:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3747, - "src": "7242:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 3754, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3749, - "src": "7248:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3752, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7223:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7223:34:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "7223:34:26" - } - ] - }, - "documentation": null, - "id": 3758, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3747, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7164:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7164:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3749, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3758, - "src": "7185:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3748, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7185:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7163:46:26" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "7219:0:26" - }, - "scope": 4351, - "src": "7137:124:26", - "stateMutability": "nonpayable", - "superFunction": 3266, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "7340:83:26", - "statements": [ - { - "assignments": [ - 3766 - ], - "declarations": [ - { - "constant": false, - "id": 3766, - "name": "flag", - "nodeType": "VariableDeclaration", - "scope": 3779, - "src": "7344:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7344:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3771, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "id": 3767, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7356:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7371:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "7356:16:26", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7367:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7344:28:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3773, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3760, - "src": "7395:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3775, - "name": "flag", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3766, - "src": "7413:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3774, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7401:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3772, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7376:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:43:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "7376:43:26" - } - ] - }, - "documentation": null, - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnBool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3760, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7295:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3759, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7295:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "7316:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3761, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7316:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7294:36:26" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7340:0:26" - }, - "scope": 4351, - "src": "7264:159:26", - "stateMutability": "nonpayable", - "superFunction": 3273, - "visibility": "external" - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "7502:55:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3788, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "7525:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3790, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3784, - "src": "7543:8:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3789, - "name": "uintToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "7531:11:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7531:21:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3787, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7506:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7506:47:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "7506:47:26" - } - ] - }, - "documentation": null, - "id": 3795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7457:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3781, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7457:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3784, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "7478:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7478:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7456:36:26" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [], - "src": "7502:0:26" - }, - "scope": 4351, - "src": "7426:131:26", - "stateMutability": "nonpayable", - "superFunction": 3280, - "visibility": "external" - }, - { - "body": { - "id": 3809, - "nodeType": "Block", - "src": "7642:58:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3803, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3797, - "src": "7665:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3805, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3799, - "src": "7686:8:26", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3804, - "name": "addressToBytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "7671:14:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) pure returns (bytes memory)" - } - }, - "id": 3806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7671:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3802, - "name": "_givenMethodReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3745, - "src": "7646:18:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,bytes memory)" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7646:50:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3808, - "nodeType": "ExpressionStatement", - "src": "7646:50:26" - } - ] - }, - "documentation": null, - "id": 3810, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodReturnAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3797, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7594:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3796, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7594:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3799, - "name": "response", - "nodeType": "VariableDeclaration", - "scope": 3810, - "src": "7615:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7615:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7593:39:26" - }, - "returnParameters": { - "id": 3801, - "nodeType": "ParameterList", - "parameters": [], - "src": "7642:0:26" - }, - "scope": 4351, - "src": "7560:140:26", - "stateMutability": "nonpayable", - "superFunction": 3287, - "visibility": "external" - }, - { - "body": { - "id": 3832, - "nodeType": "Block", - "src": "7762:112:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3815, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "7766:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3817, - "indexExpression": { - "argumentTypes": null, - "id": 3816, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7784:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7766:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3818, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "7792:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7792:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7766:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3821, - "nodeType": "ExpressionStatement", - "src": "7766:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "7811:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7833:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7811:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 3825, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7841:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "7811:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3827, - "nodeType": "ExpressionStatement", - "src": "7811:32:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3829, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3812, - "src": "7865:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3828, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "7847:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7847:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3831, - "nodeType": "ExpressionStatement", - "src": "7847:23:26" - } - ] - }, - "documentation": null, - "id": 3833, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3812, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "7732:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3811, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7732:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7731:21:26" - }, - "returnParameters": { - "id": 3814, - "nodeType": "ParameterList", - "parameters": [], - "src": "7762:0:26" - }, - "scope": 4351, - "src": "7703:171:26", - "stateMutability": "nonpayable", - "superFunction": 3337, - "visibility": "external" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "7934:121:26", - "statements": [ - { - "assignments": [ - 3839 - ], - "declarations": [ - { - "constant": false, - "id": 3839, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "7938:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3838, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7938:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3843, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3835, - "src": "7968:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3840, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "7954:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7954:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7938:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3844, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7977:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3846, - "indexExpression": { - "argumentTypes": null, - "id": 3845, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "7995:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7977:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3847, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8005:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8005:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "7977:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3850, - "nodeType": "ExpressionStatement", - "src": "7977:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3852, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "8042:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3851, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8024:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8024:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3854, - "nodeType": "ExpressionStatement", - "src": "8024:25:26" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevert", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3835, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "7904:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3834, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7904:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7903:21:26" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [], - "src": "7934:0:26" - }, - "scope": 4351, - "src": "7877:178:26", - "stateMutability": "nonpayable", - "superFunction": 3292, - "visibility": "external" - }, - { - "body": { - "id": 3880, - "nodeType": "Block", - "src": "8153:117:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3863, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8157:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3865, - "indexExpression": { - "argumentTypes": null, - "id": 3864, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8175:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8157:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3866, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8183:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8183:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8157:41:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3869, - "nodeType": "ExpressionStatement", - "src": "8157:41:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3870, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "8202:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 3872, - "indexExpression": { - "argumentTypes": null, - "id": 3871, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8224:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8202:27:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3873, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "8232:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8202:37:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3875, - "nodeType": "ExpressionStatement", - "src": "8202:37:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3877, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "8261:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3876, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8243:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8243:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3879, - "nodeType": "ExpressionStatement", - "src": "8243:23:26" - } - ] - }, - "documentation": null, - "id": 3881, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3861, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8098:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3857, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8098:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3881, - "src": "8119:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3859, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8119:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8097:46:26" - }, - "returnParameters": { - "id": 3862, - "nodeType": "ParameterList", - "parameters": [], - "src": "8153:0:26" - }, - "scope": 4351, - "src": "8058:212:26", - "stateMutability": "nonpayable", - "superFunction": 3344, - "visibility": "external" - }, - { - "body": { - "id": 3911, - "nodeType": "Block", - "src": "8366:165:26", - "statements": [ - { - "assignments": [ - 3889 - ], - "declarations": [ - { - "constant": false, - "id": 3889, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3911, - "src": "8370:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3888, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8370:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3893, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3891, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3883, - "src": "8400:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3890, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8386:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8386:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3894, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8409:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3896, - "indexExpression": { - "argumentTypes": null, - "id": 3895, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8427:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8409:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3897, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8437:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8437:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8409:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3900, - "nodeType": "ExpressionStatement", - "src": "8409:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8456:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 3903, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8479:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8456:30:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3904, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "8489:7:26", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "src": "8456:40:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3906, - "nodeType": "ExpressionStatement", - "src": "8456:40:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3908, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "8518:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3907, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8500:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8500:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3910, - "nodeType": "ExpressionStatement", - "src": "8500:25:26" - } - ] - }, - "documentation": null, - "id": 3912, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRevertWithMessage", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3883, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8311:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3882, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8311:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3885, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "8332:23:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3884, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8332:6:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8310:46:26" - }, - "returnParameters": { - "id": 3887, - "nodeType": "ParameterList", - "parameters": [], - "src": "8366:0:26" - }, - "scope": 4351, - "src": "8273:258:26", - "stateMutability": "nonpayable", - "superFunction": 3299, - "visibility": "external" - }, - { - "body": { - "id": 3928, - "nodeType": "Block", - "src": "8598:78:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3917, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "8602:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 3919, - "indexExpression": { - "argumentTypes": null, - "id": 3918, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8620:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8602:23:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3920, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8628:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8628:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8602:43:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3923, - "nodeType": "ExpressionStatement", - "src": "8602:43:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3925, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "8667:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3924, - "name": "trackCalldataMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "8649:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8649:23:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3927, - "nodeType": "ExpressionStatement", - "src": "8649:23:26" - } - ] - }, - "documentation": null, - "id": 3929, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenCalldataRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3914, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3929, - "src": "8568:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3913, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8568:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8567:21:26" - }, - "returnParameters": { - "id": 3916, - "nodeType": "ParameterList", - "parameters": [], - "src": "8598:0:26" - }, - "scope": 4351, - "src": "8534:142:26", - "stateMutability": "nonpayable", - "superFunction": 3349, - "visibility": "external" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "8741:122:26", - "statements": [ - { - "assignments": [ - 3935 - ], - "declarations": [ - { - "constant": false, - "id": 3935, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3951, - "src": "8745:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3934, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8745:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3939, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3937, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3931, - "src": "8775:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3936, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "8761:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8761:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8745:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3940, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "8784:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 3942, - "indexExpression": { - "argumentTypes": null, - "id": 3941, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8802:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8784:25:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3943, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "8812:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 3944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8812:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "8784:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 3946, - "nodeType": "ExpressionStatement", - "src": "8784:45:26" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3935, - "src": "8851:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 3947, - "name": "trackMethodIdMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "8833:17:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8833:25:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "8833:25:26" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "givenMethodRunOutOfGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3931, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "8711:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3930, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8711:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8710:21:26" - }, - "returnParameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "8741:0:26" - }, - "scope": 4351, - "src": "8679:184:26", - "stateMutability": "nonpayable", - "superFunction": 3304, - "visibility": "external" - }, - { - "body": { - "id": 3959, - "nodeType": "Block", - "src": "8917:26:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3957, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "8928:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3956, - "id": 3958, - "nodeType": "Return", - "src": "8921:18:26" - } - ] - }, - "documentation": null, - "id": 3960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3953, - "nodeType": "ParameterList", - "parameters": [], - "src": "8890:2:26" - }, - "returnParameters": { - "id": 3956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3960, - "src": "8911:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3954, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8911:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8910:6:26" - }, - "scope": 4351, - "src": "8866:77:26", - "stateMutability": "nonpayable", - "superFunction": 3354, - "visibility": "external" - }, - { - "body": { - "id": 3983, - "nodeType": "Block", - "src": "9025:122:26", - "statements": [ - { - "assignments": [ - 3968 - ], - "declarations": [ - { - "constant": false, - "id": 3968, - "name": "method", - "nodeType": "VariableDeclaration", - "scope": 3983, - "src": "9029:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3967, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "9029:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3972, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3970, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "9059:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 3969, - "name": "bytesToBytes4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4186, - "src": "9045:13:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (bytes memory) pure returns (bytes4)" - } - }, - "id": 3971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9045:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9029:35:26" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3973, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "9075:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3977, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9122:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3978, - "name": "method", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3968, - "src": "9134:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 3975, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9105:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9105:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9105:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3974, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9095:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9095:47:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9075:68:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3966, - "id": 3982, - "nodeType": "Return", - "src": "9068:75:26" - } - ] - }, - "documentation": null, - "id": 3984, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForMethod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3962, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "8980:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8980:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8979:21:26" - }, - "returnParameters": { - "id": 3966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3965, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3984, - "src": "9019:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3964, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9019:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9018:6:26" - }, - "scope": 4351, - "src": "8946:201:26", - "stateMutability": "nonpayable", - "superFunction": 3361, - "visibility": "external" - }, - { - "body": { - "id": 4001, - "nodeType": "Block", - "src": "9231:81:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3991, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "9242:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3999, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3995, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "9289:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3996, - "name": "call", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "9301:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 3993, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "9272:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9272:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9272:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3992, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9262:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9262:45:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9242:66:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3990, - "id": 4000, - "nodeType": "Return", - "src": "9235:73:26" - } - ] - }, - "documentation": null, - "id": 4002, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "invocationCountForCalldata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3986, - "name": "call", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9186:19:26", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3985, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9186:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9185:21:26" - }, - "returnParameters": { - "id": 3990, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3989, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4002, - "src": "9225:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3988, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9225:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9224:6:26" - }, - "scope": 4351, - "src": "9150:162:26", - "stateMutability": "nonpayable", - "superFunction": 3368, - "visibility": "external" - }, - { - "body": { - "id": 4134, - "nodeType": "Block", - "src": "9341:1265:26", - "statements": [ - { - "assignments": [ - 4006 - ], - "declarations": [ - { - "constant": false, - "id": 4006, - "name": "nextMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9380:21:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4005, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9380:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4010, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4007, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9404:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4009, - "indexExpression": { - "argumentTypes": null, - "id": 4008, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9418:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9404:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9380:55:26" - }, - { - "assignments": [ - 4012 - ], - "declarations": [ - { - "constant": false, - "id": 4012, - "name": "mockHash", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "9439:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4011, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9439:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4016, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4014, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9468:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4013, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9458:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9458:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9439:38:26" - }, - { - "body": { - "id": 4057, - "nodeType": "Block", - "src": "9549:355:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4020, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "9580:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4022, - "indexExpression": { - "argumentTypes": null, - "id": 4021, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9598:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9580:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4023, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "9610:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9610:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "9580:45:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4026, - "nodeType": "ExpressionStatement", - "src": "9580:45:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4027, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "9630:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4029, - "indexExpression": { - "argumentTypes": null, - "id": 4028, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9651:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9630:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9663:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9630:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4032, - "nodeType": "ExpressionStatement", - "src": "9630:38:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4033, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "9673:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4035, - "indexExpression": { - "argumentTypes": null, - "id": 4034, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9695:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9673:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9707:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9673:36:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4038, - "nodeType": "ExpressionStatement", - "src": "9673:36:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4039, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9744:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4040, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9755:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4042, - "indexExpression": { - "argumentTypes": null, - "id": 4041, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9769:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9755:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "9744:34:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4044, - "nodeType": "ExpressionStatement", - "src": "9744:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4045, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9813:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4047, - "indexExpression": { - "argumentTypes": null, - "id": 4046, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9827:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9813:23:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9839:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "9813:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4050, - "nodeType": "ExpressionStatement", - "src": "9813:28:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4051, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9869:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4053, - "name": "nextMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4006, - "src": "9890:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4052, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "9880:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9880:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9869:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 4056, - "nodeType": "ExpressionStatement", - "src": "9869:30:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4017, - "name": "mockHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "9516:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4018, - "name": "MOCKS_LIST_END_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3389, - "src": "9528:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9516:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4058, - "nodeType": "WhileStatement", - "src": "9510:394:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4059, - "name": "calldataMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3396, - "src": "9923:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 4061, - "indexExpression": { - "argumentTypes": null, - "id": 4060, - "name": "MOCKS_LIST_START", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3381, - "src": "9937:16:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9923:31:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4062, - "name": "MOCKS_LIST_END", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "9957:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "9923:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4064, - "nodeType": "ExpressionStatement", - "src": "9923:48:26" - }, - { - "assignments": [ - 4066 - ], - "declarations": [ - { - "constant": false, - "id": 4066, - "name": "nextAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "10009:18:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4065, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10009:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4070, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4067, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10030:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4069, - "indexExpression": { - "argumentTypes": null, - "id": 4068, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10044:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10030:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10009:54:26" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "10108:316:26", - "statements": [ - { - "assignments": [ - 4075 - ], - "declarations": [ - { - "constant": false, - "id": 4075, - "name": "currentAnyMock", - "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "10113:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4074, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10113:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4077, - "initialValue": { - "argumentTypes": null, - "id": 4076, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10137:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10113:35:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4078, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "10153:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4080, - "indexExpression": { - "argumentTypes": null, - "id": 4079, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10171:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10153:33:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4081, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10189:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10189:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10153:51:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4084, - "nodeType": "ExpressionStatement", - "src": "10153:51:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4085, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "10209:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4087, - "indexExpression": { - "argumentTypes": null, - "id": 4086, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10230:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10209:36:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4088, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10248:5:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10209:44:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4090, - "nodeType": "ExpressionStatement", - "src": "10209:44:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4091, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "10258:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4093, - "indexExpression": { - "argumentTypes": null, - "id": 4092, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10281:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10258:38:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10299:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10258:43:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 4096, - "nodeType": "ExpressionStatement", - "src": "10258:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4097, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10306:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4098, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10320:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4100, - "indexExpression": { - "argumentTypes": null, - "id": 4099, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10334:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10320:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10306:43:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4102, - "nodeType": "ExpressionStatement", - "src": "10306:43:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4103, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10384:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4105, - "indexExpression": { - "argumentTypes": null, - "id": 4104, - "name": "currentAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4075, - "src": "10398:14:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10384:29:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "307830", - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10416:3:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - }, - "src": "10384:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4108, - "nodeType": "ExpressionStatement", - "src": "10384:35:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4071, - "name": "nextAnyMock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4066, - "src": "10073:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 4072, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10088:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10073:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4110, - "nodeType": "WhileStatement", - "src": "10067:357:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4111, - "name": "methodIdMocks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "10443:13:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes4_$", - "typeString": "mapping(bytes4 => bytes4)" - } - }, - "id": 4113, - "indexExpression": { - "argumentTypes": null, - "id": 4112, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10457:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10443:33:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4114, - "name": "SENTINEL_ANY_MOCKS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "10479:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10443:54:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4116, - "nodeType": "ExpressionStatement", - "src": "10443:54:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4117, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "10502:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10524:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "src": "10502:24:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 4120, - "nodeType": "ExpressionStatement", - "src": "10502:24:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4121, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "10530:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4122, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "10549:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Return", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10549:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "10530:34:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "id": 4125, - "nodeType": "ExpressionStatement", - "src": "10530:34:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4126, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "10568:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 4127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10582:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10568:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4129, - "nodeType": "ExpressionStatement", - "src": "10568:15:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4130, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "10587:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10601:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10587:15:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4133, - "nodeType": "ExpressionStatement", - "src": "10587:15:26" - } - ] - }, - "documentation": null, - "id": 4135, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reset", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4003, - "nodeType": "ParameterList", - "parameters": [], - "src": "9329:2:26" - }, - "returnParameters": { - "id": 4004, - "nodeType": "ParameterList", - "parameters": [], - "src": "9341:0:26" - }, - "scope": 4351, - "src": "9315:1291:26", - "stateMutability": "nonpayable", - "superFunction": 3371, - "visibility": "external" - }, - { - "body": { - "id": 4145, - "nodeType": "Block", - "src": "10638:157:26", - "statements": [ - { - "body": { - "id": 4143, - "nodeType": "Block", - "src": "10654:138:26", - "statements": [ - { - "assignments": [ - 4140 - ], - "declarations": [ - { - "constant": false, - "id": 4140, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 4143, - "src": "10659:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4139, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10659:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4141, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10659:6:26" - }, - { - "externalReferences": [ - { - "s": { - "declaration": 4140, - "isOffset": false, - "isSlot": false, - "src": "10730:1:26", - "valueSize": 1 - } - } - ], - "id": 4142, - "nodeType": "InlineAssembly", - "operations": "{\n s := call(sub(gas(), 2000), 6, 0, 0x0, 0xc0, 0x0, 0x60)\n}", - "src": "10670:122:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10648:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 4144, - "nodeType": "WhileStatement", - "src": "10642:150:26" - } - ] - }, - "documentation": null, - "id": 4146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "useAllGas", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4136, - "nodeType": "ParameterList", - "parameters": [], - "src": "10627:2:26" - }, - "returnParameters": { - "id": 4137, - "nodeType": "ParameterList", - "parameters": [], - "src": "10638:0:26" - }, - "scope": 4351, - "src": "10609:186:26", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4185, - "nodeType": "Block", - "src": "10867:122:26", - "statements": [ - { - "assignments": [ - 4154 - ], - "declarations": [ - { - "constant": false, - "id": 4154, - "name": "out", - "nodeType": "VariableDeclaration", - "scope": 4185, - "src": "10873:10:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4153, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10873:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10873:10:26" - }, - { - "body": { - "id": 4181, - "nodeType": "Block", - "src": "10918:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4166, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10926:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "id": 4172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4168, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4148, - "src": "10940:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4170, - "indexExpression": { - "argumentTypes": null, - "id": 4169, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10942:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10940:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30784646", - "id": 4171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10947:4:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "0xFF" - }, - "src": "10940:11:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - ], - "id": 4167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10933:6:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 4173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10933:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4174, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10957:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "38", - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10961:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "10957:5:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4177, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10956:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10933:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "10926:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "id": 4180, - "nodeType": "ExpressionStatement", - "src": "10926:37:26" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4160, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10906:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10910:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "10906:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4182, - "initializationExpression": { - "assignments": [ - 4157 - ], - "declarations": [ - { - "constant": false, - "id": 4157, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4182, - "src": "10894:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4156, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10894:4:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4159, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10903:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10894:10:26" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10913:3:26", - "subExpression": { - "argumentTypes": null, - "id": 4163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4157, - "src": "10913:1:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4165, - "nodeType": "ExpressionStatement", - "src": "10913:3:26" - }, - "nodeType": "ForStatement", - "src": "10889:81:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4183, - "name": "out", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4154, - "src": "10982:3:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "functionReturnParameters": 4152, - "id": 4184, - "nodeType": "Return", - "src": "10975:10:26" - } - ] - }, - "documentation": null, - "id": 4186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "bytesToBytes4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4148, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10821:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10821:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10820:16:26" - }, - "returnParameters": { - "id": 4152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4186, - "src": "10859:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4150, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10859:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10858:8:26" - }, - "scope": 4351, - "src": "10798:191:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4194, - "nodeType": "Block", - "src": "11064:189:26", - "statements": [ - { - "externalReferences": [ - { - "b": { - "declaration": 4191, - "isOffset": false, - "isSlot": false, - "src": "11237:1:26", - "valueSize": 1 - } - }, - { - "a": { - "declaration": 4188, - "isOffset": false, - "isSlot": false, - "src": "11190:1:26", - "valueSize": 1 - } - } - ], - "id": 4193, - "nodeType": "InlineAssembly", - "operations": "{\n let m := mload(0x40)\n mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))\n mstore(0x40, add(m, 52))\n b := m\n}", - "src": "11071:182:26" - } - ] - }, - "documentation": null, - "id": 4195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addressToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4188, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11016:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11016:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11015:11:26" - }, - "returnParameters": { - "id": 4192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4191, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4195, - "src": "11049:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4190, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11049:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11048:16:26" - }, - "scope": 4351, - "src": "10992:261:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4210, - "nodeType": "Block", - "src": "11326:68:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4202, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4200, - "src": "11333:1:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 4205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11347:2:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "11337:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 4203, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11341:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11337:13:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - }, - "src": "11333:17:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4208, - "nodeType": "ExpressionStatement", - "src": "11333:17:26" - }, - { - "externalReferences": [ - { - "x": { - "declaration": 4197, - "isOffset": false, - "isSlot": false, - "src": "11387:1:26", - "valueSize": 1 - } - }, - { - "b": { - "declaration": 4200, - "isOffset": false, - "isSlot": false, - "src": "11379:1:26", - "valueSize": 1 - } - } - ], - "id": 4209, - "nodeType": "InlineAssembly", - "operations": "{\n mstore(add(b, 32), x)\n}", - "src": "11357:37:26" - } - ] - }, - "documentation": null, - "id": 4211, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "uintToBytes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4197, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11277:9:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11277:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11276:11:26" - }, - "returnParameters": { - "id": 4201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4200, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 4211, - "src": "11310:14:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4199, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11310:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11309:16:26" - }, - "scope": 4351, - "src": "11256:138:26", - "stateMutability": "pure", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 4349, - "nodeType": "Block", - "src": "11425:1178:26", - "statements": [ - { - "assignments": [ - 4215 - ], - "declarations": [ - { - "constant": false, - "id": 4215, - "name": "methodId", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11429:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 4214, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11429:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4216, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "11429:15:26" - }, - { - "externalReferences": [ - { - "methodId": { - "declaration": 4215, - "isOffset": false, - "isSlot": false, - "src": "11462:8:26", - "valueSize": 1 - } - } - ], - "id": 4217, - "nodeType": "InlineAssembly", - "operations": "{\n methodId := calldataload(0)\n}", - "src": "11448:94:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4218, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11544:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11562:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11562:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11544:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4222, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11575:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11575:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11544:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4233, - "nodeType": "IfStatement", - "src": "11540:101:26", - "trueBody": { - "id": 4232, - "nodeType": "Block", - "src": "11592:49:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4226, - "name": "calldataRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "11604:21:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_string_storage_$", - "typeString": "mapping(bytes memory => string storage ref)" - } - }, - "id": 4229, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4227, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11626:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11626:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11604:31:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4225, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11597:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11597:39:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4231, - "nodeType": "ExpressionStatement", - "src": "11597:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4234, - "name": "calldataMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "11648:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes memory => enum MockContract.MockType)" - } - }, - "id": 4237, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4235, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11666:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11666:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11648:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4238, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11679:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11679:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11648:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4245, - "nodeType": "IfStatement", - "src": "11644:75:26", - "trueBody": { - "id": 4244, - "nodeType": "Block", - "src": "11698:21:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4241, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "11703:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11703:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4243, - "nodeType": "ExpressionStatement", - "src": "11703:11:26" - } - ] - } - }, - { - "assignments": [ - 4247 - ], - "declarations": [ - { - "constant": false, - "id": 4247, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 4349, - "src": "11722:19:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4246, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11722:5:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4252, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4248, - "name": "calldataExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3404, - "src": "11744:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes_memory_$_t_bytes_storage_$", - "typeString": "mapping(bytes memory => bytes storage ref)" - } - }, - "id": 4251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "11765:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11765:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11744:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11722:52:26" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4253, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "11819:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11819:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4255, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11836:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11819:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4289, - "nodeType": "IfStatement", - "src": "11815:262:26", - "trueBody": { - "id": 4288, - "nodeType": "Block", - "src": "11839:238:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4257, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11848:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4259, - "indexExpression": { - "argumentTypes": null, - "id": 4258, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11866:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11848:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4260, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11879:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11879:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11848:46:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4270, - "nodeType": "IfStatement", - "src": "11844:104:26", - "trueBody": { - "id": 4269, - "nodeType": "Block", - "src": "11896:52:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4264, - "name": "methodIdRevertMessages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "11909:22:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_string_storage_$", - "typeString": "mapping(bytes4 => string storage ref)" - } - }, - "id": 4266, - "indexExpression": { - "argumentTypes": null, - "id": 4265, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11932:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11909:32:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4263, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "11902:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11902:40:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4268, - "nodeType": "ExpressionStatement", - "src": "11902:40:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "methodIdMockTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "11956:17:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_enum$_MockType_$3378_$", - "typeString": "mapping(bytes4 => enum MockContract.MockType)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "11974:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11956:27:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4274, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "11987:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11987:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "11956:48:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4281, - "nodeType": "IfStatement", - "src": "11952:77:26", - "trueBody": { - "id": 4280, - "nodeType": "Block", - "src": "12006:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4277, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12012:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12012:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4279, - "nodeType": "ExpressionStatement", - "src": "12012:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4282, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12033:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4283, - "name": "methodIdExpectations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3424, - "src": "12042:20:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bytes_storage_$", - "typeString": "mapping(bytes4 => bytes storage ref)" - } - }, - "id": 4285, - "indexExpression": { - "argumentTypes": null, - "id": 4284, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12063:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12042:30:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12033:39:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4287, - "nodeType": "ExpressionStatement", - "src": "12033:39:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4290, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12122:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12122:13:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12139:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12122:18:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4318, - "nodeType": "IfStatement", - "src": "12118:218:26", - "trueBody": { - "id": 4317, - "nodeType": "Block", - "src": "12142:194:26", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4294, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12151:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4295, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12171:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Revert", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12171:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12151:35:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4303, - "nodeType": "IfStatement", - "src": "12147:82:26", - "trueBody": { - "id": 4302, - "nodeType": "Block", - "src": "12188:41:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4299, - "name": "fallbackRevertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3438, - "src": "12201:21:26", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 4298, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4371, - 4372 - ], - "referencedDeclaration": 4372, - "src": "12194:6:26", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12194:29:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4301, - "nodeType": "ExpressionStatement", - "src": "12194:29:26" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - }, - "id": 4307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4304, - "name": "fallbackMockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "12237:16:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4305, - "name": "MockType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3378, - "src": "12257:8:26", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MockType_$3378_$", - "typeString": "type(enum MockContract.MockType)" - } - }, - "id": 4306, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "OutOfGas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12257:17:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MockType_$3378", - "typeString": "enum MockContract.MockType" - } - }, - "src": "12237:37:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 4312, - "nodeType": "IfStatement", - "src": "12233:66:26", - "trueBody": { - "id": 4311, - "nodeType": "Block", - "src": "12276:23:26", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4308, - "name": "useAllGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4146, - "src": "12282:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 4309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12282:11:26", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4310, - "nodeType": "ExpressionStatement", - "src": "12282:11:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4313, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4247, - "src": "12303:6:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4314, - "name": "fallbackExpectation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "12312:19:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "12303:28:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4316, - "nodeType": "ExpressionStatement", - "src": "12303:28:26" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 4321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4319, - "name": "invocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3440, - "src": "12363:11:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12378:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12363:16:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4322, - "nodeType": "ExpressionStatement", - "src": "12363:16:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4323, - "name": "methodIdInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3432, - "src": "12383:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4331, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4327, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12430:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4328, - "name": "methodId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "12442:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "expression": { - "argumentTypes": null, - "id": 4325, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12413:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12413:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12413:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4324, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12403:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12403:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12383:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12457:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12383:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4334, - "nodeType": "ExpressionStatement", - "src": "12383:75:26" - }, - { - "expression": { - "argumentTypes": null, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4335, - "name": "calldataInvocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "12462:19:26", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4339, - "name": "resetCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3442, - "src": "12509:10:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "12521:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12521:8:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 4337, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "12492:3:26", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12492:16:26", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 4342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12492:38:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4336, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "12482:9:26", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12482:49:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12462:70:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 4345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12536:1:26", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "12462:75:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4347, - "nodeType": "ExpressionStatement", - "src": "12462:75:26" - }, - { - "externalReferences": [ - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12588:6:26", - "valueSize": 1 - } - }, - { - "result": { - "declaration": 4247, - "isOffset": false, - "isSlot": false, - "src": "12573:6:26", - "valueSize": 1 - } - } - ], - "id": 4348, - "nodeType": "InlineAssembly", - "operations": "{\n return(add(0x20, result), mload(result))\n}", - "src": "12542:61:26" - } - ] - }, - "documentation": null, - "id": 4350, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [], - "src": "11405:2:26" - }, - "returnParameters": { - "id": 4213, - "nodeType": "ParameterList", - "parameters": [], - "src": "11425:0:26" - }, - "scope": 4351, - "src": "11397:1206:26", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4352, - "src": "3610:8995:26" - } - ], - "src": "0:12606:26" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.656Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json deleted file mode 100644 index 9731e66d..00000000 --- a/safe-contracts/build/contracts/Module.json +++ /dev/null @@ -1,1304 +0,0 @@ -{ - "contractName": "Module", - "abi": [ - { - "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" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506102d4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063481c6a751461003b5780637de7edef14610085575b600080fd5b6100436100c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c76004803603602081101561009b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ef565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806102836026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061025f6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058207d5d57b76c411688dcf985fae5801ab472c86ac7464d15b65260d0e08216f2af0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063481c6a751461003b5780637de7edef14610085575b600080fd5b6100436100c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c76004803603602081101561009b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100ef565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610195576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806102836026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561021b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061025f6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058207d5d57b76c411688dcf985fae5801ab472c86ac7464d15b65260d0e08216f2af0029", - "sourceMap": "233:520:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:520:4;;;;;;;", - "deployedSourceMap": "233:520:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;233:520:4;;;;;;;;;;;;;;;;;;;;;;;;270:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;270:28:4;;;;;;;;;;;;;:::o;626:257:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../common/MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager), \"Method can only be called from manager\");\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == address(0), \"Manager has already been set\");\n manager = ModuleManager(msg.sender);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "exportedSymbols": { - "Module": [ - 1020 - ] - }, - "id": 1021, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 977, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "../common/MasterCopy.sol", - "id": 978, - "nodeType": "ImportDirective", - "scope": 1021, - "sourceUnit": 1840, - "src": "24:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 979, - "nodeType": "ImportDirective", - "scope": 1021, - "sourceUnit": 1331, - "src": "59:29:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 980, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1839, - "src": "252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1839", - "typeString": "contract MasterCopy" - } - }, - "id": 981, - "nodeType": "InheritanceSpecifier", - "src": "252:10:4" - } - ], - "contractDependencies": [ - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1020, - "linearizedBaseContracts": [ - 1020, - 1839, - 1881 - ], - "name": "Module", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 983, - "name": "manager", - "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "270:28:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - }, - "typeName": { - "contractScope": null, - "id": 982, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1330, - "src": "270:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 996, - "nodeType": "Block", - "src": "327:109:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 986, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "345:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "345:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 989, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "367:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "359:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "359:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "345:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "377:40:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - }, - "value": "Method can only be called from manager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - } - ], - "id": 985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "337:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "337:81:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 994, - "nodeType": "ExpressionStatement", - "src": "337:81:4" - }, - { - "id": 995, - "nodeType": "PlaceholderStatement", - "src": "428:1:4" - } - ] - }, - "documentation": null, - "id": 997, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 984, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:4" - }, - "src": "305:131:4", - "visibility": "internal" - }, - { - "body": { - "id": 1018, - "nodeType": "Block", - "src": "485:266:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1002, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "644:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "636:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "664:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "656:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "656:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "636:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 1008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "668:30:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - }, - "value": "Manager has already been set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - } - ], - "id": 1000, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "628:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "628:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1010, - "nodeType": "ExpressionStatement", - "src": "628:71:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1011, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1013, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "733:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "733:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1012, - "name": "ModuleManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "719:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1330_$", - "typeString": "type(contract ModuleManager)" - } - }, - "id": 1015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:25:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "src": "709:35:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 1017, - "nodeType": "ExpressionStatement", - "src": "709:35:4" - } - ] - }, - "documentation": null, - "id": 1019, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setManager", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 998, - "nodeType": "ParameterList", - "parameters": [], - "src": "461:2:4" - }, - "returnParameters": { - "id": 999, - "nodeType": "ParameterList", - "parameters": [], - "src": "485:0:4" - }, - "scope": 1020, - "src": "442:309:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1021, - "src": "233:520:4" - } - ], - "src": "0:754:4" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "exportedSymbols": { - "Module": [ - 1020 - ] - }, - "id": 1021, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 977, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol", - "file": "../common/MasterCopy.sol", - "id": 978, - "nodeType": "ImportDirective", - "scope": 1021, - "sourceUnit": 1840, - "src": "24:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "./ModuleManager.sol", - "id": 979, - "nodeType": "ImportDirective", - "scope": 1021, - "sourceUnit": 1331, - "src": "59:29:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 980, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1839, - "src": "252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$1839", - "typeString": "contract MasterCopy" - } - }, - "id": 981, - "nodeType": "InheritanceSpecifier", - "src": "252:10:4" - } - ], - "contractDependencies": [ - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1020, - "linearizedBaseContracts": [ - 1020, - 1839, - 1881 - ], - "name": "Module", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 983, - "name": "manager", - "nodeType": "VariableDeclaration", - "scope": 1020, - "src": "270:28:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - }, - "typeName": { - "contractScope": null, - "id": 982, - "name": "ModuleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1330, - "src": "270:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 996, - "nodeType": "Block", - "src": "327:109:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 986, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "345:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "345:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 989, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "367:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "359:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "359:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "345:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "377:40:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - }, - "value": "Method can only be called from manager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", - "typeString": "literal_string \"Method can only be called from manager\"" - } - ], - "id": 985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "337:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "337:81:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 994, - "nodeType": "ExpressionStatement", - "src": "337:81:4" - }, - { - "id": 995, - "nodeType": "PlaceholderStatement", - "src": "428:1:4" - } - ] - }, - "documentation": null, - "id": 997, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 984, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:4" - }, - "src": "305:131:4", - "visibility": "internal" - }, - { - "body": { - "id": 1018, - "nodeType": "Block", - "src": "485:266:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1002, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "644:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "636:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "636:16:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "664:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "656:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "656:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "636:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 1008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "668:30:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - }, - "value": "Manager has already been set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", - "typeString": "literal_string \"Manager has already been set\"" - } - ], - "id": 1000, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "628:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "628:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1010, - "nodeType": "ExpressionStatement", - "src": "628:71:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1011, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1013, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "733:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "733:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1012, - "name": "ModuleManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "719:13:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1330_$", - "typeString": "type(contract ModuleManager)" - } - }, - "id": 1015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:25:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "src": "709:35:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 1017, - "nodeType": "ExpressionStatement", - "src": "709:35:4" - } - ] - }, - "documentation": null, - "id": 1019, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setManager", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 998, - "nodeType": "ParameterList", - "parameters": [], - "src": "461:2:4" - }, - "returnParameters": { - "id": 999, - "nodeType": "ParameterList", - "parameters": [], - "src": "485:0:4" - }, - "scope": 1020, - "src": "442:309:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1021, - "src": "233:520:4" - } - ], - "src": "0:754:4" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.624Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json deleted file mode 100644 index 22166669..00000000 --- a/safe-contracts/build/contracts/ModuleManager.json +++ /dev/null @@ -1,8792 +0,0 @@ -{ - "contractName": "ModuleManager", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevModule", - "type": "address" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506110e5806100206000396000f3fe60806040526004361061004a5760003560e01c8063468721a71461004c578063610b59251461016357806385e332cd146101b4578063b2494df31461020b578063e009cfde14610277575b005b34801561005857600080fd5b506101496004803603608081101561006f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100b657600080fd5b8201836020820111156100c857600080fd5b803590602001918460018302840111640100000000831117156100ea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506102e8565b604051808215151515815260200191505060405180910390f35b34801561016f57600080fd5b506101b26004803603602081101561018657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061041e565b005b3480156101c057600080fd5b506101c961083e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021757600080fd5b50610220610843565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610263578082015181840152602081019050610248565b505050509050019250505060405180910390f35b34801561028357600080fd5b506102e66004803603604081101561029a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ade565b005b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156103b25750600073ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061108a6030913960400191505060405180910390fd5b610414858585855a610ee0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061105e602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561050c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b606060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610951576000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506108af565b6060826040519080825280602002602001820160405280156109825781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ad55781818481518110610a2d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109ec565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061105e602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610bcc5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806110366028913960400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000806002811115610eee57fe5b836002811115610efa57fe5b1415610f1357610f0c86868685610ff3565b9050610fea565b60016002811115610f2057fe5b836002811115610f2c57fe5b1415610f4457610f3d86858461100c565b9050610fe9565b6000610f4f85611023565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f0905091905056fe496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65a165627a7a723058207d99d690f659fa1c849084edabc839548dd873e6e8ac97caf76c53af55f706720029", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063468721a71461004c578063610b59251461016357806385e332cd146101b4578063b2494df31461020b578063e009cfde14610277575b005b34801561005857600080fd5b506101496004803603608081101561006f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100b657600080fd5b8201836020820111156100c857600080fd5b803590602001918460018302840111640100000000831117156100ea57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff1690602001909291905050506102e8565b604051808215151515815260200191505060405180910390f35b34801561016f57600080fd5b506101b26004803603602081101561018657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061041e565b005b3480156101c057600080fd5b506101c961083e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021757600080fd5b50610220610843565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610263578082015181840152602081019050610248565b505050509050019250505060405180910390f35b34801561028357600080fd5b506102e66004803603604081101561029a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ade565b005b6000600173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156103b25750600073ffffffffffffffffffffffffffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b610407576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061108a6030913960400191505060405180910390fd5b610414858585855a610ee0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061105e602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561050c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461067e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600181565b606060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610951576000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506108af565b6060826040519080825280602002602001820160405280156109825781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ad55781818481518110610a2d57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506109ec565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061105e602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610bcc5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610c3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806110366028913960400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000806002811115610eee57fe5b836002811115610efa57fe5b1415610f1357610f0c86868685610ff3565b9050610fea565b60016002811115610f2057fe5b836002811115610f2c57fe5b1415610f4457610f3d86858461100c565b9050610fe9565b6000610f4f85611023565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505b5b95945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f0905091905056fe496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e74726163744d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65a165627a7a723058207d99d690f659fa1c849084edabc839548dd873e6e8ac97caf76c53af55f706720029", - "sourceMap": "348:3866:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:3866:5;;;;;;;", - "deployedSourceMap": "348:3866:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2909:479;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2909:479:5;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2909:479:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2909:479:5;;;;;;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;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2909:479:5;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1207:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:540:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1207:540:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;488:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3467:745;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3467:745:5;;;:::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;3467:745:5;;;;;;;;;;;;;;;;;2008:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:565:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2008:565:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2909:479;3048:12;539:3;3133:30;;:10;:30;;;;:67;;;;;3198:1;3167:33;;:7;:19;3175:10;3167:19;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;3133:67;3125:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3335:46;3343:2;3347:5;3354:4;3360:9;3371;3335:7;:46::i;:::-;3325:56;;2909:479;;;;;;:::o;1207:540::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1381:1:5;1354:29;;1362:6;1354:29;;;;:68;;;;;539:3;1387:35;;1395:6;1387:35;;;;1354:68;1346:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1553:1;1517:38;;:7;:24;1533:6;1517:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1509:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1626:7;:25;539:3;1626:25;;;;;;;;;;;;;;;;;;;;;;;;;1599:7;:24;1615:6;1599:24;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;1697:6;1661:7;:25;539:3;1661:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1719:21;1733:6;1719:21;;;;;;;;;;;;;;;;;;;;;;1207:540;:::o;488:55::-;539:3;488:55;:::o;3467:745::-;3534:16;3600:19;3622:1;3600:23;;3633:21;3657:7;:25;539:3;3657:25;;;;;;;;;;;;;;;;;;;;;;;;;3633:49;;3692:132;539:3;3698:33;;:13;:33;;;3692:132;;3763:7;:22;3771:13;3763:22;;;;;;;;;;;;;;;;;;;;;;;;;3747:38;;3799:14;;;;;;;3692:132;;;3833:22;3872:11;3858:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3858:26:5;;;;3833:51;;3942:1;3928:15;;3969:7;:25;539:3;3969:25;;;;;;;;;;;;;;;;;;;;;;;;;3953:41;;4004:180;539:3;4010:33;;:13;:33;;;4004:180;;4080:13;4059:5;4065:11;4059:18;;;;;;;;;;;;;:34;;;;;;;;;;;4123:7;:22;4131:13;4123:22;;;;;;;;;;;;;;;;;;;;;;;;;4107:38;;4159:14;;;;;;;4004:180;;;4200:5;4193:12;;;;;3467:745;:::o;2008:565::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2230:1:5;2203:29;;2211:6;2203:29;;;;:68;;;;;539:3;2236:35;;2244:6;2236:35;;;;2203:68;2195:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2365:6;2325:47;;:7;:28;2341:10;2325:28;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;2317:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2458:7;:24;2474:6;2458:24;;;;;;;;;;;;;;;;;;;;;;;;;2427:7;:28;2443:10;2427:28;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;2527:1;2492:7;:24;2508:6;2492:24;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2544:22;2559:6;2544:22;;;;;;;;;;;;;;;;;;;;;;2008:565;;:::o;313:564:3:-;451:12;496:19;483:32;;;;;;;;:9;:32;;;;;;;;;479:392;;;539:35;551:2;555:5;562:4;568:5;539:11;:35::i;:::-;529:45;;479:392;;;606:27;593:40;;;;;;;;:9;:40;;;;;;;;;589:282;;;657:36;677:2;681:4;687:5;657:19;:36::i;:::-;647:46;;589:282;;;722:19;744;758:4;744:13;:19::i;:::-;722:41;;810:1;787:25;;:11;:25;;;;777:35;;831:29;848:11;831:29;;;;;;;;;;;;;;;;;;;;;;589:282;;479:392;313:564;;;;;;;:::o;883:316::-;999:12;1181:1;1178;1171:4;1165:11;1158:4;1152;1148:15;1141:5;1137:2;1130:5;1125:58;1114:69;;1100:93;;;;;;:::o;1205:310::-;1314:12;1497:1;1494;1487:4;1481:11;1474:4;1468;1464:15;1460:2;1453:5;1440:59;1429:70;;1415:94;;;;;:::o;1521:268::-;1597:19;1767:4;1761:11;1754:4;1748;1744:15;1741:1;1734:39;1719:54;;1705:78;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../common/Enum.sol\";\nimport \"../common/SelfAuthorized.sol\";\nimport \"./Executor.sol\";\nimport \"./Module.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized, Executor {\n\n event EnabledModule(Module module);\n event DisabledModule(Module module);\n\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n \n function setupModules(address to, bytes memory data)\n internal\n {\n require(modules[SENTINEL_MODULES] == address(0), \"Modules have already been initialized\");\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != address(0))\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()), \"Could not finish initialization\");\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != address(0) && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[address(module)] == address(0), \"Module has already been added\");\n modules[address(module)] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = address(module);\n emit EnabledModule(module);\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address and check that it corresponds to module index.\n require(address(module) != address(0) && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[address(prevModule)] == address(module), \"Invalid prevModule, module pair provided\");\n modules[address(prevModule)] = modules[address(module)];\n modules[address(module)] = address(0);\n emit DisabledModule(module);\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes memory data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(msg.sender != SENTINEL_MODULES && modules[msg.sender] != address(0), \"Method can only be called from an enabled module\");\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[] memory)\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "exportedSymbols": { - "ModuleManager": [ - 1330 - ] - }, - "id": 1331, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1022, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 1023, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1804, - "src": "24:28:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1024, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1882, - "src": "53:38:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "file": "./Executor.sol", - "id": 1025, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 976, - "src": "92:24:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 1026, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1021, - "src": "117:22:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1027, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "374:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1028, - "nodeType": "InheritanceSpecifier", - "src": "374:14:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1029, - "name": "Executor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 975, - "src": "390:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$975", - "typeString": "contract Executor" - } - }, - "id": 1030, - "nodeType": "InheritanceSpecifier", - "src": "390:8:5" - } - ], - "contractDependencies": [ - 975, - 1810, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1330, - "linearizedBaseContracts": [ - 1330, - 975, - 1810, - 1881 - ], - "name": "ModuleManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1034, - "name": "EnabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "426:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1031, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "425:15:5" - }, - "src": "406:35:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1038, - "name": "DisabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 1037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1036, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1038, - "src": "467:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1035, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "467:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:5" - }, - "src": "446:36:5" - }, - { - "constant": true, - "id": 1043, - "name": "SENTINEL_MODULES", - "nodeType": "VariableDeclaration", - "scope": 1330, - "src": "488:55:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "539:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "531:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1047, - "name": "modules", - "nodeType": "VariableDeclaration", - "scope": 1330, - "src": "550:45:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1046, - "keyType": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "559:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "550:28:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1087, - "nodeType": "Block", - "src": "680:360:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1055, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "698:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1057, - "indexExpression": { - "argumentTypes": null, - "id": 1056, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "706:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "698:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "735:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "727:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "727:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "698:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "739:39:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - }, - "value": "Modules have already been initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - } - ], - "id": 1054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "690:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "690:89:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1064, - "nodeType": "ExpressionStatement", - "src": "690:89:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1065, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "789:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1067, - "indexExpression": { - "argumentTypes": null, - "id": 1066, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "797:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "789:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1068, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "817:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "789:44:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1070, - "nodeType": "ExpressionStatement", - "src": "789:44:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1071, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1049, - "src": "847:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "853:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "853:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "847:16:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1086, - "nodeType": "IfStatement", - "src": "843:190:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1078, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1049, - "src": "977:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1079, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "981:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1080, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "987:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "987:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1077, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "957:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "957:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "999:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - }, - "value": "Could not finish initialization" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - } - ], - "id": 1076, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "949:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "949:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1085, - "nodeType": "ExpressionStatement", - "src": "949:84:5" - } - } - ] - }, - "documentation": null, - "id": 1088, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1049, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1088, - "src": "628:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "628:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1051, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1088, - "src": "640:17:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "640:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:31:5" - }, - "returnParameters": { - "id": 1053, - "nodeType": "ParameterList", - "parameters": [], - "src": "680:0:5" - }, - "scope": 1330, - "src": "606:434:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1147, - "nodeType": "Block", - "src": "1282:465:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1362:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1354:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1354:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1381:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1373:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1373:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1354:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1104, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1395:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1387:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1387:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1106, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1406:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1387:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1354:68:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1424:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1346:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1346:112:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1111, - "nodeType": "ExpressionStatement", - "src": "1346:112:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1113, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1517:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1117, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1115, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1533:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1525:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1525:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1517:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1553:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1545:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1545:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1517:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1557:31:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - }, - "value": "Module has already been added" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - } - ], - "id": 1112, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1509:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1509:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "1509:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1125, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1599:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1129, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1127, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1615:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1607:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1607:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1599:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1130, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1626:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1132, - "indexExpression": { - "argumentTypes": null, - "id": 1131, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1634:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1626:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1599:52:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1134, - "nodeType": "ExpressionStatement", - "src": "1599:52:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1135, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1661:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1137, - "indexExpression": { - "argumentTypes": null, - "id": 1136, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1669:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1661:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1139, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1697:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1689:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1689:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1661:43:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1142, - "nodeType": "ExpressionStatement", - "src": "1661:43:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1733:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1143, - "name": "EnabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "1719:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1719:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1146, - "nodeType": "EmitStatement", - "src": "1714:26:5" - } - ] - }, - "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1093, - "modifierName": { - "argumentTypes": null, - "id": 1092, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "1267:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1267:10:5" - } - ], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1090, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1229:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1089, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "1229:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1228:15:5" - }, - "returnParameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [], - "src": "1282:0:5" - }, - "scope": 1330, - "src": "1207:540:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1213, - "nodeType": "Block", - "src": "2103:470:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1159, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2211:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2203:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2203:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2230:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2222:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2203:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1166, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2244:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1168, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2255:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2236:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2203:68:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2273:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1157, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2195:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2195:112:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1173, - "nodeType": "ExpressionStatement", - "src": "2195:112:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1175, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1179, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1177, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1150, - "src": "2341:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2333:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2333:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2325:28:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2365:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2357:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2357:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2325:47:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2374:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - }, - "value": "Invalid prevModule, module pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - } - ], - "id": 1174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2317:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2317:100:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1186, - "nodeType": "ExpressionStatement", - "src": "2317:100:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1187, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2427:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1189, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1150, - "src": "2443:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2435:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2427:28:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1192, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2458:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1196, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1194, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2474:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2466:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2466:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2458:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2427:55:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1198, - "nodeType": "ExpressionStatement", - "src": "2427:55:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1199, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2492:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1203, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1201, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2508:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2500:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2500:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2492:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2527:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2519:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2519:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2492:37:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1208, - "nodeType": "ExpressionStatement", - "src": "2492:37:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2559:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1209, - "name": "DisabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "2544:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2544:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1212, - "nodeType": "EmitStatement", - "src": "2539:27:5" - } - ] - }, - "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1214, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1155, - "modifierName": { - "argumentTypes": null, - "id": 1154, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "2088:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2088:10:5" - } - ], - "name": "disableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1150, - "name": "prevModule", - "nodeType": "VariableDeclaration", - "scope": 1214, - "src": "2031:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1149, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "2031:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1152, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1214, - "src": "2050:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1151, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "2050:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2030:34:5" - }, - "returnParameters": { - "id": 1156, - "nodeType": "ParameterList", - "parameters": [], - "src": "2103:0:5" - }, - "scope": 1330, - "src": "2008:565:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1255, - "nodeType": "Block", - "src": "3066:322:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1228, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "3133:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3133:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1230, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3147:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3133:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1232, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3167:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1235, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1233, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "3175:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3175:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3167:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3198:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3190:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3190:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3167:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3133:67:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3202:50:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - }, - "value": "Method can only be called from an enabled module" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - } - ], - "id": 1227, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3125:128:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1243, - "nodeType": "ExpressionStatement", - "src": "3125:128:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1244, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1246, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3343:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1247, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3347:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1248, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1220, - "src": "3354:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1249, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "3360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1250, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "3371:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3371:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1245, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "3335:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3335:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3325:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1254, - "nodeType": "ExpressionStatement", - "src": "3325:56:5" - } - ] - }, - "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1256, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransactionFromModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1223, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1216, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2944:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2944:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1218, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2956:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1217, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2956:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1220, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2971:17:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1219, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2971:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1222, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2990:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 1221, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "2990:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2943:72:5" - }, - "returnParameters": { - "id": 1226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1225, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "3048:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1224, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3048:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3047:14:5" - }, - "scope": 1330, - "src": "2909:479:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1328, - "nodeType": "Block", - "src": "3556:656:5", - "statements": [ - { - "assignments": [ - 1263 - ], - "declarations": [ - { - "constant": false, - "id": 1263, - "name": "moduleCount", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3600:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3600:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1265, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3622:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3600:23:5" - }, - { - "assignments": [ - 1267 - ], - "declarations": [ - { - "constant": false, - "id": 1267, - "name": "currentModule", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3633:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3633:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1271, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1268, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3657:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1270, - "indexExpression": { - "argumentTypes": null, - "id": 1269, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3665:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3657:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3633:49:5" - }, - { - "body": { - "id": 1284, - "nodeType": "Block", - "src": "3733:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1275, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3747:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1276, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3763:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1278, - "indexExpression": { - "argumentTypes": null, - "id": 1277, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3771:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3763:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3747:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1280, - "nodeType": "ExpressionStatement", - "src": "3747:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3799:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1281, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3799:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1283, - "nodeType": "ExpressionStatement", - "src": "3799:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1272, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3698:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1273, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3715:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3698:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1285, - "nodeType": "WhileStatement", - "src": "3692:132:5" - }, - { - "assignments": [ - 1289 - ], - "declarations": [ - { - "constant": false, - "id": 1289, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3833:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3833:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1288, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3833:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1295, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1293, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3872:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3858:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1290, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3862:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1291, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3862:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3858:26:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3833:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1296, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3928:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3942:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3928:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "3928:15:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1300, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3953:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1301, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3969:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1303, - "indexExpression": { - "argumentTypes": null, - "id": 1302, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3977:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3969:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3953:41:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1305, - "nodeType": "ExpressionStatement", - "src": "3953:41:5" - }, - { - "body": { - "id": 1324, - "nodeType": "Block", - "src": "4045:139:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1309, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1289, - "src": "4059:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1311, - "indexExpression": { - "argumentTypes": null, - "id": 1310, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "4065:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4059:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1312, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4080:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4059:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1314, - "nodeType": "ExpressionStatement", - "src": "4059:34:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1315, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4107:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1316, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "4123:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1318, - "indexExpression": { - "argumentTypes": null, - "id": 1317, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4131:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4123:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4107:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1320, - "nodeType": "ExpressionStatement", - "src": "4107:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4159:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1321, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "4159:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1323, - "nodeType": "ExpressionStatement", - "src": "4159:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4010:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1307, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "4027:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4010:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1325, - "nodeType": "WhileStatement", - "src": "4004:180:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1326, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1289, - "src": "4200:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1261, - "id": 1327, - "nodeType": "Return", - "src": "4193:12:5" - } - ] - }, - "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1329, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1257, - "nodeType": "ParameterList", - "parameters": [], - "src": "3486:2:5" - }, - "returnParameters": { - "id": 1261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "3534:16:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3534:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1259, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3534:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3533:18:5" - }, - "scope": 1330, - "src": "3467:745:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1331, - "src": "348:3866:5" - } - ], - "src": "0:4215:5" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "exportedSymbols": { - "ModuleManager": [ - 1330 - ] - }, - "id": 1331, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1022, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 1023, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1804, - "src": "24:28:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1024, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1882, - "src": "53:38:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Executor.sol", - "file": "./Executor.sol", - "id": 1025, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 976, - "src": "92:24:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "./Module.sol", - "id": 1026, - "nodeType": "ImportDirective", - "scope": 1331, - "sourceUnit": 1021, - "src": "117:22:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1027, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "374:14:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1028, - "nodeType": "InheritanceSpecifier", - "src": "374:14:5" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1029, - "name": "Executor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 975, - "src": "390:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Executor_$975", - "typeString": "contract Executor" - } - }, - "id": 1030, - "nodeType": "InheritanceSpecifier", - "src": "390:8:5" - } - ], - "contractDependencies": [ - 975, - 1810, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1330, - "linearizedBaseContracts": [ - 1330, - 975, - 1810, - 1881 - ], - "name": "ModuleManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1034, - "name": "EnabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1034, - "src": "426:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1031, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "426:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "425:15:5" - }, - "src": "406:35:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 1038, - "name": "DisabledModule", - "nodeType": "EventDefinition", - "parameters": { - "id": 1037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1036, - "indexed": false, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1038, - "src": "467:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1035, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "467:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "466:15:5" - }, - "src": "446:36:5" - }, - { - "constant": true, - "id": 1043, - "name": "SENTINEL_MODULES", - "nodeType": "VariableDeclaration", - "scope": 1330, - "src": "488:55:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "539:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "531:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "531:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1047, - "name": "modules", - "nodeType": "VariableDeclaration", - "scope": 1330, - "src": "550:45:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1046, - "keyType": { - "id": 1044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "559:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "550:28:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1087, - "nodeType": "Block", - "src": "680:360:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1055, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "698:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1057, - "indexExpression": { - "argumentTypes": null, - "id": 1056, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "706:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "698:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "735:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "727:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "727:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "698:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "739:39:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - }, - "value": "Modules have already been initialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", - "typeString": "literal_string \"Modules have already been initialized\"" - } - ], - "id": 1054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "690:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "690:89:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1064, - "nodeType": "ExpressionStatement", - "src": "690:89:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1065, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "789:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1067, - "indexExpression": { - "argumentTypes": null, - "id": 1066, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "797:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "789:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1068, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "817:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "789:44:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1070, - "nodeType": "ExpressionStatement", - "src": "789:44:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1071, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1049, - "src": "847:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "853:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "853:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "847:16:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1086, - "nodeType": "IfStatement", - "src": "843:190:5", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1078, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1049, - "src": "977:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1079, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "981:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1080, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "987:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "987:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1077, - "name": "executeDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "957:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,bytes memory,uint256) returns (bool)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "957:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "999:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - }, - "value": "Could not finish initialization" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", - "typeString": "literal_string \"Could not finish initialization\"" - } - ], - "id": 1076, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "949:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "949:84:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1085, - "nodeType": "ExpressionStatement", - "src": "949:84:5" - } - } - ] - }, - "documentation": null, - "id": 1088, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1049, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1088, - "src": "628:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "628:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1051, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1088, - "src": "640:17:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1050, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "640:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:31:5" - }, - "returnParameters": { - "id": 1053, - "nodeType": "ParameterList", - "parameters": [], - "src": "680:0:5" - }, - "scope": 1330, - "src": "606:434:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1147, - "nodeType": "Block", - "src": "1282:465:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1362:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1354:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1354:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1381:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1373:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1373:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1354:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1104, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1395:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1387:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1387:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1106, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1406:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1387:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1354:68:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1424:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1095, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1346:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1346:112:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1111, - "nodeType": "ExpressionStatement", - "src": "1346:112:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1113, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1517:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1117, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1115, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1533:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1525:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1525:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1517:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1553:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1545:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1545:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1517:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1557:31:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - }, - "value": "Module has already been added" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", - "typeString": "literal_string \"Module has already been added\"" - } - ], - "id": 1112, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1509:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1509:80:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1124, - "nodeType": "ExpressionStatement", - "src": "1509:80:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1125, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1599:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1129, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1127, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1615:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1607:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1607:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1599:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1130, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1626:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1132, - "indexExpression": { - "argumentTypes": null, - "id": 1131, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1634:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1626:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1599:52:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1134, - "nodeType": "ExpressionStatement", - "src": "1599:52:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1135, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "1661:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1137, - "indexExpression": { - "argumentTypes": null, - "id": 1136, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1669:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1661:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1139, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1697:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1689:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1689:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1661:43:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1142, - "nodeType": "ExpressionStatement", - "src": "1661:43:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "1733:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1143, - "name": "EnabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "1719:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1719:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1146, - "nodeType": "EmitStatement", - "src": "1714:26:5" - } - ] - }, - "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 1148, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1093, - "modifierName": { - "argumentTypes": null, - "id": 1092, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "1267:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1267:10:5" - } - ], - "name": "enableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1090, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1148, - "src": "1229:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1089, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "1229:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1228:15:5" - }, - "returnParameters": { - "id": 1094, - "nodeType": "ParameterList", - "parameters": [], - "src": "1282:0:5" - }, - "scope": 1330, - "src": "1207:540:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1213, - "nodeType": "Block", - "src": "2103:470:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1159, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2211:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2203:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2203:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2230:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2222:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2222:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2203:29:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1166, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2244:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2236:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2236:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1168, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2255:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2236:35:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2203:68:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2273:33:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - }, - "value": "Invalid module address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", - "typeString": "literal_string \"Invalid module address provided\"" - } - ], - "id": 1157, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2195:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2195:112:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1173, - "nodeType": "ExpressionStatement", - "src": "2195:112:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1175, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1179, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1177, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1150, - "src": "2341:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2333:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2333:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2325:28:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2365:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2357:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2357:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2325:47:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2374:42:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - }, - "value": "Invalid prevModule, module pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", - "typeString": "literal_string \"Invalid prevModule, module pair provided\"" - } - ], - "id": 1174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2317:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2317:100:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1186, - "nodeType": "ExpressionStatement", - "src": "2317:100:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1187, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2427:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1189, - "name": "prevModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1150, - "src": "2443:10:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2435:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2427:28:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1192, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2458:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1196, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1194, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2474:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2466:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2466:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2458:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2427:55:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1198, - "nodeType": "ExpressionStatement", - "src": "2427:55:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1199, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "2492:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1203, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1201, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2508:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2500:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2500:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2492:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2527:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2519:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2519:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2492:37:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1208, - "nodeType": "ExpressionStatement", - "src": "2492:37:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1152, - "src": "2559:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - ], - "id": 1209, - "name": "DisabledModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "2544:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Module_$1020_$returns$__$", - "typeString": "function (contract Module)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2544:22:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1212, - "nodeType": "EmitStatement", - "src": "2539:27:5" - } - ] - }, - "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 1214, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1155, - "modifierName": { - "argumentTypes": null, - "id": 1154, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "2088:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2088:10:5" - } - ], - "name": "disableModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1150, - "name": "prevModule", - "nodeType": "VariableDeclaration", - "scope": 1214, - "src": "2031:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1149, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "2031:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1152, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1214, - "src": "2050:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1151, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "2050:6:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2030:34:5" - }, - "returnParameters": { - "id": 1156, - "nodeType": "ParameterList", - "parameters": [], - "src": "2103:0:5" - }, - "scope": 1330, - "src": "2008:565:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1255, - "nodeType": "Block", - "src": "3066:322:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1228, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "3133:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3133:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1230, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3147:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3133:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1232, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3167:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1235, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1233, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "3175:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3175:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3167:19:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3198:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3190:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3190:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3167:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3133:67:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3202:50:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - }, - "value": "Method can only be called from an enabled module" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", - "typeString": "literal_string \"Method can only be called from an enabled module\"" - } - ], - "id": 1227, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3125:128:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1243, - "nodeType": "ExpressionStatement", - "src": "3125:128:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1244, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1225, - "src": "3325:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1246, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3343:2:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1247, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "3347:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1248, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1220, - "src": "3354:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1249, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "3360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1250, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4359, - "src": "3371:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3371:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1245, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "3335:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3335:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3325:56:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1254, - "nodeType": "ExpressionStatement", - "src": "3325:56:5" - } - ] - }, - "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 1256, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransactionFromModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1223, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1216, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2944:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2944:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1218, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2956:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1217, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2956:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1220, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2971:17:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1219, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2971:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1222, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "2990:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 1221, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "2990:14:5", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2943:72:5" - }, - "returnParameters": { - "id": 1226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1225, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1256, - "src": "3048:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1224, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3048:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3047:14:5" - }, - "scope": 1330, - "src": "2909:479:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1328, - "nodeType": "Block", - "src": "3556:656:5", - "statements": [ - { - "assignments": [ - 1263 - ], - "declarations": [ - { - "constant": false, - "id": 1263, - "name": "moduleCount", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3600:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3600:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1265, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3622:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3600:23:5" - }, - { - "assignments": [ - 1267 - ], - "declarations": [ - { - "constant": false, - "id": 1267, - "name": "currentModule", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3633:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3633:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1271, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1268, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3657:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1270, - "indexExpression": { - "argumentTypes": null, - "id": 1269, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3665:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3657:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3633:49:5" - }, - { - "body": { - "id": 1284, - "nodeType": "Block", - "src": "3733:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1275, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3747:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1276, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3763:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1278, - "indexExpression": { - "argumentTypes": null, - "id": 1277, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3771:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3763:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3747:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1280, - "nodeType": "ExpressionStatement", - "src": "3747:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3799:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1281, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3799:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1283, - "nodeType": "ExpressionStatement", - "src": "3799:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1272, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3698:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1273, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3715:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3698:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1285, - "nodeType": "WhileStatement", - "src": "3692:132:5" - }, - { - "assignments": [ - 1289 - ], - "declarations": [ - { - "constant": false, - "id": 1289, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "3833:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3833:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1288, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3833:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1295, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1293, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3872:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "3858:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1290, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3862:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1291, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3862:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3858:26:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3833:51:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1296, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "3928:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3942:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3928:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "3928:15:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1300, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "3953:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1301, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "3969:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1303, - "indexExpression": { - "argumentTypes": null, - "id": 1302, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "3977:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3969:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3953:41:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1305, - "nodeType": "ExpressionStatement", - "src": "3953:41:5" - }, - { - "body": { - "id": 1324, - "nodeType": "Block", - "src": "4045:139:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1309, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1289, - "src": "4059:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1311, - "indexExpression": { - "argumentTypes": null, - "id": 1310, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "4065:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4059:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1312, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4080:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4059:34:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1314, - "nodeType": "ExpressionStatement", - "src": "4059:34:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1315, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4107:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1316, - "name": "modules", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1047, - "src": "4123:7:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1318, - "indexExpression": { - "argumentTypes": null, - "id": 1317, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4131:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4123:22:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4107:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1320, - "nodeType": "ExpressionStatement", - "src": "4107:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4159:14:5", - "subExpression": { - "argumentTypes": null, - "id": 1321, - "name": "moduleCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "4159:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1323, - "nodeType": "ExpressionStatement", - "src": "4159:14:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1306, - "name": "currentModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "4010:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1307, - "name": "SENTINEL_MODULES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "4027:16:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4010:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1325, - "nodeType": "WhileStatement", - "src": "4004:180:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1326, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1289, - "src": "4200:5:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1261, - "id": 1327, - "nodeType": "Return", - "src": "4193:12:5" - } - ] - }, - "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1329, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getModules", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1257, - "nodeType": "ParameterList", - "parameters": [], - "src": "3486:2:5" - }, - "returnParameters": { - "id": 1261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "3534:16:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3534:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1259, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3534:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3533:18:5" - }, - "scope": 1330, - "src": "3467:745:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1331, - "src": "348:3866:5" - } - ], - "src": "0:4215:5" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.624Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json deleted file mode 100644 index c48756e5..00000000 --- a/safe-contracts/build/contracts/MultiSend.json +++ /dev/null @@ -1,383 +0,0 @@ -{ - "contractName": "MultiSend", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506101a5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d80ff0a14610030575b600080fd5b6100e96004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100eb565b005b805160205b81811015610174578083015160208201840151604083018501516080840186015160a0850187016000856000811461012f576001811461013f5761014a565b6000808585888a5af1915061014a565b6000808585895af491505b50600081141561015957600080fd5b602080601f8501040260a001870196505050505050506100f0565b50505056fea165627a7a72305820b7d1a78429d94e0731621b2828b99b335f5d5ffe3788d74ce661365fe34a8d530029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d80ff0a14610030575b600080fd5b6100e96004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100eb565b005b805160205b81811015610174578083015160208201840151604083018501516080840186015160a0850187016000856000811461012f576001811461013f5761014a565b6000808585888a5af1915061014a565b6000808585895af491505b50600081141561015957600080fd5b602080601f8501040260a001870196505050505050506100f0565b50505056fea165627a7a72305820b7d1a78429d94e0731621b2828b99b335f5d5ffe3788d74ce661365fe34a8d530029", - "sourceMap": "253:1431:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1431:16;;;;;;;", - "deployedSourceMap": "253:1431:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1431:16;;;;;;;;;;;;;;;;;;;695:987;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;695:987:16;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;695:987:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;695:987:16;;;;;;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;695:987:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;695:987:16;;;;;;;;;;;;;;;:::i;:::-;;;877:12;871:19;912:4;929:737;943:6;940:1;937:13;929:737;;;1014:1;1000:12;996:20;990:27;1075:4;1072:1;1068:12;1054;1050:31;1044:38;1143:4;1140:1;1136:12;1122;1118:31;1112:38;1216:4;1213:1;1209:12;1195;1191:31;1185:38;1277:4;1274:1;1270:12;1256;1252:31;1315:1;1340:9;1372:1;1367:66;;;;1455:1;1450:67;;;;1333:184;;1367:66;1429:1;1426;1414:10;1408:4;1401:5;1397:2;1392:3;1387:44;1376:55;;1367:66;;1450:67;1513:1;1510;1498:10;1492:4;1488:2;1483:3;1470:45;1459:56;;1333:184;;1549:1;1540:7;1537:14;1534:2;;;1564:1;1561;1554:12;1534:2;1645:4;1638;1631;1619:10;1615:21;1611:32;1607:43;1601:4;1597:54;1594:1;1590:62;1585:67;;955:711;;;;;;929:737;;;843:833;;;:::o", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as a \n /// tuple(operation,address,uint256,bytes), where operation \n /// can be 0 for a call or 1 for a delegatecall. The bytes \n /// of all encoded transactions are concatenated to form the input.\n function multiSend(bytes memory transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation \n case 0 { success := call(gas, to, value, data, dataLength, 0, 0) }\n case 1 { success := delegatecall(gas, to, data, dataLength, 0, 0) }\n if eq(success, 0) { revert(0, 0) }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "exportedSymbols": { - "MultiSend": [ - 2135 - ] - }, - "id": 2136, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2127, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:16" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", - "fullyImplemented": true, - "id": 2135, - "linearizedBaseContracts": [ - 2135 - ], - "name": "MultiSend", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2133, - "nodeType": "Block", - "src": "760:922:16", - "statements": [ - { - "externalReferences": [ - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "877:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1000:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1054:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1195:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1122:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1256:12:16", - "valueSize": 1 - } - } - ], - "id": 2132, - "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "834:848:16" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 2134, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2129, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 2134, - "src": "714:25:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2128, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "714:5:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "713:27:16" - }, - "returnParameters": { - "id": 2131, - "nodeType": "ParameterList", - "parameters": [], - "src": "760:0:16" - }, - "scope": 2135, - "src": "695:987:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2136, - "src": "253:1431:16" - } - ], - "src": "0:1685:16" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", - "exportedSymbols": { - "MultiSend": [ - 2135 - ] - }, - "id": 2136, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2127, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:16" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", - "fullyImplemented": true, - "id": 2135, - "linearizedBaseContracts": [ - 2135 - ], - "name": "MultiSend", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2133, - "nodeType": "Block", - "src": "760:922:16", - "statements": [ - { - "externalReferences": [ - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "877:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1000:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1054:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1195:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1122:12:16", - "valueSize": 1 - } - }, - { - "transactions": { - "declaration": 2129, - "isOffset": false, - "isSlot": false, - "src": "1256:12:16", - "valueSize": 1 - } - } - ], - "id": 2132, - "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", - "src": "834:848:16" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 2134, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2129, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 2134, - "src": "714:25:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2128, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "714:5:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "713:27:16" - }, - "returnParameters": { - "id": 2131, - "nodeType": "ParameterList", - "parameters": [], - "src": "760:0:16" - }, - "scope": 2135, - "src": "695:987:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2136, - "src": "253:1431:16" - } - ], - "src": "0:1685:16" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": { - "1": { - "links": {}, - "events": {}, - "address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72", - "updated_at": 1555073253729 - }, - "4": { - "links": {}, - "events": {}, - "address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72", - "updated_at": 1555073253778 - }, - "5": { - "links": {}, - "events": {}, - "address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72", - "updated_at": 1555073253860 - }, - "42": { - "links": {}, - "events": {}, - "address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72", - "updated_at": 1555073253821 - } - }, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.635Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json deleted file mode 100644 index f47a9476..00000000 --- a/safe-contracts/build/contracts/OwnerManager.json +++ /dev/null @@ -1,12921 +0,0 @@ -{ - "contractName": "OwnerManager", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611792806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a0e67e2b1161005b578063a0e67e2b146101af578063e318b52b1461020e578063e75235b814610292578063f8dc5dd9146102b057610088565b80630d582f131461008d5780632f54bf6e146100db578063694e80c3146101375780638cff635514610165575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061031e565b005b61011d600480360360208110156100f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610764565b604051808215151515815260200191505060405180910390f35b6101636004803603602081101561014d57600080fd5b8101908080359060200190929190505050610835565b005b61016d6109b1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b76109b6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101fa5780820151818401526020810190506101df565b505050509050019250505060405180910390f35b6102906004803603606081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b49565b005b61029a611208565b6040518082815260200191505060405180910390f35b61031c600480360360608110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611212565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561040c5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600254146107605761075f81610835565b5b5050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561082e5750600073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600154811115610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116996023913960400191505060405180910390fd5b600181101561096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117176024913960400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b6060806001546040519080825280602002602001820160405280156109ea5781602001602082028038833980820191505090505b50905060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b405780838381518110610a9857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a57565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c375750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610e135750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116f16026913960400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b80600180540310156112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806116bc6035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561135d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116f16026913960400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600254146116935761169281610835565b5b50505056fe5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64496e76616c696420707265764f776e65722c206f776e657220706169722070726f76696465645468726573686f6c64206e6565647320746f2062652067726561746572207468616e20304d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820c18ae787280244a77733efea9f14b8aa9d58abec2eba3dc00f62fee3c77708300029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a0e67e2b1161005b578063a0e67e2b146101af578063e318b52b1461020e578063e75235b814610292578063f8dc5dd9146102b057610088565b80630d582f131461008d5780632f54bf6e146100db578063694e80c3146101375780638cff635514610165575b600080fd5b6100d9600480360360408110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061031e565b005b61011d600480360360208110156100f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610764565b604051808215151515815260200191505060405180910390f35b6101636004803603602081101561014d57600080fd5b8101908080359060200190929190505050610835565b005b61016d6109b1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b76109b6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101fa5780820151818401526020810190506101df565b505050509050019250505060405180910390f35b6102906004803603606081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b49565b005b61029a611208565b6040518082815260200191505060405180910390f35b61031c600480360360608110156102c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611212565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561040c5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61047e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600254146107605761075f81610835565b5b5050565b6000600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561082e5750600073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600154811115610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116996023913960400191505060405180910390fd5b600181101561096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117176024913960400191505060405180910390fd5b806002819055507f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c936002546040518082815260200191505060405180910390a150565b600181565b6060806001546040519080825280602002602001820160405280156109ea5781602001602082028038833980820191505090505b50905060008090506000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610b405780838381518110610a9857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a57565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bcd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c375750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610ca9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610e135750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610e85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116f16026913960400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061173b602c913960400191505060405180910390fd5b80600180540310156112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806116bc6035913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561135d5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6113cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116f16026913960400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600254146116935761169281610835565b5b50505056fe5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e744e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64496e76616c696420707265764f776e65722c206f776e657220706169722070726f76696465645468726573686f6c64206e6565647320746f2062652067726561746572207468616e20304d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820c18ae787280244a77733efea9f14b8aa9d58abec2eba3dc00f62fee3c77708300029", - "sourceMap": "248:6489:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:6489:6;;;;;;;", - "deployedSourceMap": "248:6489:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:6489:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2250:645;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2250:645:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6022:166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6022:166:6;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5454:441;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5454:441:6;;;;;;;;;;;;;;;;;:::i;:::-;;419:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6270:465;;;:::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;6270:465:6;;;;;;;;;;;;;;;;;4406:859;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4406:859:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5901:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3237:835;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3237:835:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2250:645;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:1:6;2413:19;;:5;:19;;;;:47;;;;;469:3;2436:24;;:5;:24;;;;2413:47;2405:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:1;2553:27;;:6;:13;2560:5;2553:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;2545:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:6;:23;469:3;2638:23;;;;;;;;;;;;;;;;;;;;;;;;;2622:6;:13;2629:5;2622:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2697:5;2671:6;:23;469:3;2671:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2712:10;;:12;;;;;;;;;;;;;2739:17;2750:5;2739:17;;;;;;;;;;;;;;;;;;;;;;2837:10;2824:9;;:23;2820:68;;2861:27;2877:10;2861:15;:27::i;:::-;2820:68;2250:645;;:::o;6022:166::-;6099:4;469:3;6126:24;;:5;:24;;;;:55;;;;;6179:1;6154:27;;:6;:13;6161:5;6154:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;6126:55;6119:62;;6022:166;;;:::o;5454:441::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:10:6;;5624;:24;;5616:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:1;5758:10;:15;;5750:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5836:10;5824:9;:22;;;;5861:27;5878:9;;5861:27;;;;;;;;;;;;;;;;;;5454:441;:::o;419:54::-;469:3;419:54;:::o;6270:465::-;6336:16;6368:22;6407:10;;6393:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6393:25:6;;;;6368:50;;6462:13;6478:1;6462:17;;6489:20;6512:6;:23;469:3;6512:23;;;;;;;;;;;;;;;;;;;;;;;;;6489:46;;6545:162;469:3;6551:31;;:12;:31;;;6545:162;;6613:12;6598:5;6604;6598:12;;;;;;;;;;;;;:27;;;;;;;;;;;6654:6;:20;6661:12;6654:20;;;;;;;;;;;;;;;;;;;;;;;;;6639:35;;6688:8;;;;;;;6545:162;;;6723:5;6716:12;;;;;6270:465;:::o;4406:859::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4597:1:6;4577:22;;:8;:22;;;;:53;;;;;469:3;4603:27;;:8;:27;;;;4577:53;4569:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4751:1;4723:30;;:6;:16;4730:8;4723:16;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;4715:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:1;4886:22;;:8;:22;;;;:53;;;;;469:3;4912:27;;:8;:27;;;;4886:53;4878:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5013:8;4992:29;;:6;:17;4999:9;4992:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4984:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5093:6;:16;5100:8;5093:16;;;;;;;;;;;;;;;;;;;;;;;;;5074:6;:16;5081:8;5074:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;5139:8;5119:6;:17;5126:9;5119:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5184:1;5157:6;:16;5164:8;5157:16;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;5201:22;5214:8;5201:22;;;;;;;;;;;;;;;;;;;;;;5238:20;5249:8;5238:20;;;;;;;;;;;;;;;;;;;;;;4406:859;;;:::o;5901:115::-;5970:7;6000:9;;5993:16;;5901:115;:::o;3237:835::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:10:6;3458:1;3445:10;;:14;:28;;3437:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3646:1;3629:19;;:5;:19;;;;:47;;;;;469:3;3652:24;;:5;:24;;;;3629:47;3621:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3750:5;3729:26;;:6;:17;3736:9;3729:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3721:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3828:6;:13;3835:5;3828:13;;;;;;;;;;;;;;;;;;;;;;;;;3808:6;:17;3815:9;3808:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3875:1;3851:6;:13;3858:5;3851:13;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3887:10;;:12;;;;;;;;;;;;;;3914:19;3927:5;3914:19;;;;;;;;;;;;;;;;;;;;;;4014:10;4001:9;;:23;3997:68;;4038:27;4054:10;4038:15;:27::i;:::-;3997:68;3237:835;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../common/SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n event AddedOwner(address owner);\n event RemovedOwner(address owner);\n event ChangedThreshold(uint256 threshold);\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint256 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] memory _owners, uint256 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != address(0) && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == address(0), \"Duplicate owner address provided\");\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint256 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != address(0) && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == address(0), \"Address is already an owner\");\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n emit AddedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint256 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != address(0) && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\n owners[prevOwner] = owners[owner];\n owners[owner] = address(0);\n ownerCount--;\n emit RemovedOwner(owner);\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != address(0) && newOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == address(0), \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != address(0) && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = address(0);\n emit RemovedOwner(oldOwner);\n emit AddedOwner(newOwner);\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint256 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n emit ChangedThreshold(threshold);\n }\n\n function getThreshold()\n public\n view\n returns (uint256)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owner != SENTINEL_OWNERS && owners[owner] != address(0);\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[] memory)\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "exportedSymbols": { - "OwnerManager": [ - 1796 - ] - }, - "id": 1797, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1332, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1333, - "nodeType": "ImportDirective", - "scope": 1797, - "sourceUnit": 1882, - "src": "24:38:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1334, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "273:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1335, - "nodeType": "InheritanceSpecifier", - "src": "273:14:6" - } - ], - "contractDependencies": [ - 1881 - ], - "contractKind": "contract", - "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1796, - "linearizedBaseContracts": [ - 1796, - 1881 - ], - "name": "OwnerManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1339, - "name": "AddedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1337, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1339, - "src": "312:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:15:6" - }, - "src": "295:32:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1343, - "name": "RemovedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1341, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "351:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1340, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "351:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "350:15:6" - }, - "src": "332:34:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1347, - "name": "ChangedThreshold", - "nodeType": "EventDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1345, - "indexed": false, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1347, - "src": "394:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "393:19:6" - }, - "src": "371:42:6" - }, - { - "constant": true, - "id": 1352, - "name": "SENTINEL_OWNERS", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "419:54:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "419:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "469:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "461:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "461:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1356, - "name": "owners", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "480:43:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1355, - "keyType": { - "id": 1353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "480:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1358, - "name": "ownerCount", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "529:18:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "529:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "553:26:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "553:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "863:1147:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1369, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "1005:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1018:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1005:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1021:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - }, - "value": "Owners have already been setup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - } - ], - "id": 1368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "997:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "997:57:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "ExpressionStatement", - "src": "997:57:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1376, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1147:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1377, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1161:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1161:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1147:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1177:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1139:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1139:76:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1382, - "nodeType": "ExpressionStatement", - "src": "1139:76:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1384, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1285:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1299:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1285:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1302:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1383, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1277:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1277:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1389, - "nodeType": "ExpressionStatement", - "src": "1277:64:6" - }, - { - "assignments": [ - 1391 - ], - "declarations": [ - { - "constant": false, - "id": 1391, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1388:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1388:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1393, - "initialValue": { - "argumentTypes": null, - "id": 1392, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1411:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1388:38:6" - }, - { - "body": { - "id": 1445, - "nodeType": "Block", - "src": "1481:406:6", - "statements": [ - { - "assignments": [ - 1406 - ], - "declarations": [ - { - "constant": false, - "id": 1406, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1445, - "src": "1540:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1540:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1410, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1407, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1556:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1409, - "indexExpression": { - "argumentTypes": null, - "id": 1408, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1564:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1556:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1540:26:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1412, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1588:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1605:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1597:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1597:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1588:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1417, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1611:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1418, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1620:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1611:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1588:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1637:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1580:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1580:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1423, - "nodeType": "ExpressionStatement", - "src": "1580:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1425, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1736:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1427, - "indexExpression": { - "argumentTypes": null, - "id": 1426, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1743:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1736:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1761:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1753:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1753:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1736:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - }, - "value": "Duplicate owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - } - ], - "id": 1424, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1728:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1728:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1434, - "nodeType": "ExpressionStatement", - "src": "1728:72:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1435, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1814:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1437, - "indexExpression": { - "argumentTypes": null, - "id": 1436, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1821:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1814:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1438, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1837:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1814:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1440, - "nodeType": "ExpressionStatement", - "src": "1814:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1441, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1856:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1442, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1871:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1856:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1444, - "nodeType": "ExpressionStatement", - "src": "1856:20:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1398, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1456:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1399, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1460:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1460:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1456:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1446, - "initializationExpression": { - "assignments": [ - 1395 - ], - "declarations": [ - { - "constant": false, - "id": 1395, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1446, - "src": "1441:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1441:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1397, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1453:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1441:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1476:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1402, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1476:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1404, - "nodeType": "ExpressionStatement", - "src": "1476:3:6" - }, - "nodeType": "ForStatement", - "src": "1436:451:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1447, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1896:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1449, - "indexExpression": { - "argumentTypes": null, - "id": 1448, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1903:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1896:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1450, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1919:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1896:38:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1452, - "nodeType": "ExpressionStatement", - "src": "1896:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1453, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1944:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1454, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1957:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1957:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1944:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1457, - "nodeType": "ExpressionStatement", - "src": "1944:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1458, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "1981:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1459, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1993:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1981:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1461, - "nodeType": "ExpressionStatement", - "src": "1981:22:6" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1463, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1363, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "796:24:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1362, - "length": null, - "nodeType": "ArrayTypeName", - "src": "796:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1365, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "822:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1364, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "822:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "795:46:6" - }, - "returnParameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [], - "src": "863:0:6" - }, - "scope": 1796, - "src": "775:1235:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1525, - "nodeType": "Block", - "src": "2354:541:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1473, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2413:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2430:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2422:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2422:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2413:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1478, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2436:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1479, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2445:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2436:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2413:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2462:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2405:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "2405:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1486, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2553:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1488, - "indexExpression": { - "argumentTypes": null, - "id": 1487, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2560:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2553:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2578:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2570:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2570:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2553:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2582:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2545:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2545:67:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "2545:67:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1496, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2622:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1498, - "indexExpression": { - "argumentTypes": null, - "id": 1497, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2629:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2622:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1499, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2638:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1501, - "indexExpression": { - "argumentTypes": null, - "id": 1500, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2645:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2638:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2622:39:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1503, - "nodeType": "ExpressionStatement", - "src": "2622:39:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1504, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2671:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "id": 1505, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2678:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2671:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1507, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2697:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2671:31:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1509, - "nodeType": "ExpressionStatement", - "src": "2671:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2712:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1510, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2712:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1512, - "nodeType": "ExpressionStatement", - "src": "2712:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2750:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1513, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1339, - "src": "2739:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2739:17:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1516, - "nodeType": "EmitStatement", - "src": "2734:22:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1517, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "2824:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1518, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "2837:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2824:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1524, - "nodeType": "IfStatement", - "src": "2820:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1521, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "2877:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1520, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "2861:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2861:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "2861:27:6" - } - } - ] - }, - "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1526, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1470, - "modifierName": { - "argumentTypes": null, - "id": 1469, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "2339:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2339:10:6" - } - ], - "name": "addOwnerWithThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1465, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "2281:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2281:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1467, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "2296:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1466, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2296:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2280:35:6" - }, - "returnParameters": { - "id": 1471, - "nodeType": "ParameterList", - "parameters": [], - "src": "2354:0:6" - }, - "scope": 1796, - "src": "2250:645:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1599, - "nodeType": "Block", - "src": "3350:722:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1538, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3445:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1541, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "3463:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3445:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:55:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - }, - "value": "New owner count needs to be larger than new threshold" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - } - ], - "id": 1537, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3437:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3437:94:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1545, - "nodeType": "ExpressionStatement", - "src": "3437:94:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1547, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3629:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3646:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3638:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3638:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3629:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1552, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3652:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1553, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "3661:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3652:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3629:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3678:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3621:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3621:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1558, - "nodeType": "ExpressionStatement", - "src": "3621:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1560, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3729:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1562, - "indexExpression": { - "argumentTypes": null, - "id": 1561, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3736:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3729:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1563, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3750:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3729:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3757:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1559, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3721:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3721:77:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1567, - "nodeType": "ExpressionStatement", - "src": "3721:77:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1568, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3808:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1570, - "indexExpression": { - "argumentTypes": null, - "id": 1569, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3815:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3808:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1571, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3828:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1573, - "indexExpression": { - "argumentTypes": null, - "id": 1572, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3835:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3828:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3808:33:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1575, - "nodeType": "ExpressionStatement", - "src": "3808:33:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1576, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3851:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1578, - "indexExpression": { - "argumentTypes": null, - "id": 1577, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3858:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3851:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3875:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3867:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3867:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3851:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1583, - "nodeType": "ExpressionStatement", - "src": "3851:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3887:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1584, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3887:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1586, - "nodeType": "ExpressionStatement", - "src": "3887:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3927:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1587, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "3914:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3914:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1590, - "nodeType": "EmitStatement", - "src": "3909:24:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1591, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "4001:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1592, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "4014:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4001:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1598, - "nodeType": "IfStatement", - "src": "3997:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1595, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "4054:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1594, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "4038:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4038:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1597, - "nodeType": "ExpressionStatement", - "src": "4038:27:6" - } - } - ] - }, - "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1600, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1535, - "modifierName": { - "argumentTypes": null, - "id": 1534, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "3335:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3335:10:6" - } - ], - "name": "removeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1528, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3258:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3258:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3277:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3277:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1532, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3292:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3292:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3257:54:6" - }, - "returnParameters": { - "id": 1536, - "nodeType": "ParameterList", - "parameters": [], - "src": "3350:0:6" - }, - "scope": 1796, - "src": "3237:835:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1687, - "nodeType": "Block", - "src": "4518:747:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1612, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4577:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4597:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4589:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4589:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4577:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1617, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4603:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1618, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "4615:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4603:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4577:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4632:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1611, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4569:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4569:96:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1623, - "nodeType": "ExpressionStatement", - "src": "4569:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1625, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "4723:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1627, - "indexExpression": { - "argumentTypes": null, - "id": 1626, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4730:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4723:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4751:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4743:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4743:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4723:30:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4755:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4715:70:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1634, - "nodeType": "ExpressionStatement", - "src": "4715:70:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1636, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "4886:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4906:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4898:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4898:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4886:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1641, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "4912:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1642, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "4924:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4912:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4886:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4941:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1635, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4878:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4878:96:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1647, - "nodeType": "ExpressionStatement", - "src": "4878:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1649, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "4992:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1651, - "indexExpression": { - "argumentTypes": null, - "id": 1650, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "4999:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4992:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1652, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5013:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4992:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5023:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1648, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4984:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4984:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1656, - "nodeType": "ExpressionStatement", - "src": "4984:80:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1657, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5074:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1659, - "indexExpression": { - "argumentTypes": null, - "id": 1658, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5081:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5074:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1660, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5093:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1662, - "indexExpression": { - "argumentTypes": null, - "id": 1661, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5100:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5093:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5074:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1664, - "nodeType": "ExpressionStatement", - "src": "5074:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1665, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5119:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1667, - "indexExpression": { - "argumentTypes": null, - "id": 1666, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "5126:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5119:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1668, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5139:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1670, - "nodeType": "ExpressionStatement", - "src": "5119:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5157:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1673, - "indexExpression": { - "argumentTypes": null, - "id": 1672, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5164:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5157:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5184:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5176:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5176:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5157:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "5157:29:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1680, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5214:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1679, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "5201:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5201:22:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1682, - "nodeType": "EmitStatement", - "src": "5196:27:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5249:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1683, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1339, - "src": "5238:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5238:20:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "EmitStatement", - "src": "5233:25:6" - } - ] - }, - "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1688, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1609, - "modifierName": { - "argumentTypes": null, - "id": 1608, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "4503:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4503:10:6" - } - ], - "name": "swapOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1602, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4425:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4425:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1604, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4444:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1603, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4444:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1606, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4462:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4462:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4424:55:6" - }, - "returnParameters": { - "id": 1610, - "nodeType": "ParameterList", - "parameters": [], - "src": "4518:0:6" - }, - "scope": 1796, - "src": "4406:859:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1717, - "nodeType": "Block", - "src": "5537:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1696, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5624:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1697, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "5638:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5624:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5650:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1695, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5616:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5616:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "ExpressionStatement", - "src": "5616:72:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1703, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5758:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5772:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5758:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5775:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1702, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5750:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5750:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1708, - "nodeType": "ExpressionStatement", - "src": "5750:64:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1709, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "5824:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1710, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5836:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5824:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1712, - "nodeType": "ExpressionStatement", - "src": "5824:22:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1714, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "5878:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1713, - "name": "ChangedThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "5861:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1716, - "nodeType": "EmitStatement", - "src": "5856:32:6" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1718, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1693, - "modifierName": { - "argumentTypes": null, - "id": 1692, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "5522:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5522:10:6" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1690, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1718, - "src": "5479:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5479:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5478:20:6" - }, - "returnParameters": { - "id": 1694, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:6" - }, - "scope": 1796, - "src": "5454:441:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1725, - "nodeType": "Block", - "src": "5983:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1723, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "6000:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1722, - "id": 1724, - "nodeType": "Return", - "src": "5993:16:6" - } - ] - }, - "documentation": null, - "id": 1726, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1719, - "nodeType": "ParameterList", - "parameters": [], - "src": "5922:2:6" - }, - "returnParameters": { - "id": 1722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1721, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "5970:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1720, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5970:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5969:9:6" - }, - "scope": 1796, - "src": "5901:115:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1745, - "nodeType": "Block", - "src": "6109:79:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1733, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6126:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1734, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6135:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6126:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1736, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6154:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1738, - "indexExpression": { - "argumentTypes": null, - "id": 1737, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6161:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6154:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6179:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6171:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6171:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6154:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6126:55:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1732, - "id": 1744, - "nodeType": "Return", - "src": "6119:62:6" - } - ] - }, - "documentation": null, - "id": 1746, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1728, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "6039:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6039:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6038:15:6" - }, - "returnParameters": { - "id": 1732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1731, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "6099:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1730, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6099:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6098:6:6" - }, - "scope": 1796, - "src": "6022:166:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1794, - "nodeType": "Block", - "src": "6358:377:6", - "statements": [ - { - "assignments": [ - 1755 - ], - "declarations": [ - { - "constant": false, - "id": 1755, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6368:22:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6368:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1754, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6368:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1761, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1759, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "6407:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6393:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6397:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1757, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6397:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6393:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6368:50:6" - }, - { - "assignments": [ - 1763 - ], - "declarations": [ - { - "constant": false, - "id": 1763, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6462:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6462:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1765, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6478:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6462:17:6" - }, - { - "assignments": [ - 1767 - ], - "declarations": [ - { - "constant": false, - "id": 1767, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6489:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6489:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1768, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6512:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1770, - "indexExpression": { - "argumentTypes": null, - "id": 1769, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6519:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6512:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6489:46:6" - }, - { - "body": { - "id": 1790, - "nodeType": "Block", - "src": "6584:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1775, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "6598:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1777, - "indexExpression": { - "argumentTypes": null, - "id": 1776, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "6604:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6598:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1778, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6613:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6598:27:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1780, - "nodeType": "ExpressionStatement", - "src": "6598:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1781, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6639:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1782, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6654:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1784, - "indexExpression": { - "argumentTypes": null, - "id": 1783, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6661:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6654:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6639:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "6639:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6688:8:6", - "subExpression": { - "argumentTypes": null, - "id": 1787, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "6688:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1789, - "nodeType": "ExpressionStatement", - "src": "6688:8:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1772, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6551:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1773, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6567:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6551:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1791, - "nodeType": "WhileStatement", - "src": "6545:162:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1792, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "6723:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1751, - "id": 1793, - "nodeType": "Return", - "src": "6716:12:6" - } - ] - }, - "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1747, - "nodeType": "ParameterList", - "parameters": [], - "src": "6288:2:6" - }, - "returnParameters": { - "id": 1751, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1750, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "6336:16:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1748, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6336:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1749, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6336:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6335:18:6" - }, - "scope": 1796, - "src": "6270:465:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1797, - "src": "248:6489:6" - } - ], - "src": "0:6738:6" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "exportedSymbols": { - "OwnerManager": [ - 1796 - ] - }, - "id": 1797, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1332, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "file": "../common/SelfAuthorized.sol", - "id": 1333, - "nodeType": "ImportDirective", - "scope": 1797, - "sourceUnit": 1882, - "src": "24:38:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1334, - "name": "SelfAuthorized", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1881, - "src": "273:14:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - }, - "id": 1335, - "nodeType": "InheritanceSpecifier", - "src": "273:14:6" - } - ], - "contractDependencies": [ - 1881 - ], - "contractKind": "contract", - "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1796, - "linearizedBaseContracts": [ - 1796, - 1881 - ], - "name": "OwnerManager", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 1339, - "name": "AddedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1337, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1339, - "src": "312:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "311:15:6" - }, - "src": "295:32:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1343, - "name": "RemovedOwner", - "nodeType": "EventDefinition", - "parameters": { - "id": 1342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1341, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "351:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1340, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "351:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "350:15:6" - }, - "src": "332:34:6" - }, - { - "anonymous": false, - "documentation": null, - "id": 1347, - "name": "ChangedThreshold", - "nodeType": "EventDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1345, - "indexed": false, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1347, - "src": "394:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "394:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "393:19:6" - }, - "src": "371:42:6" - }, - { - "constant": true, - "id": 1352, - "name": "SENTINEL_OWNERS", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "419:54:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "419:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307831", - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "469:3:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "0x1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 1349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "461:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "461:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" - }, - { - "constant": false, - "id": 1356, - "name": "owners", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "480:43:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 1355, - "keyType": { - "id": 1353, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "488:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "480:27:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 1354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1358, - "name": "ownerCount", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "529:18:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "529:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "553:26:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "553:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 1462, - "nodeType": "Block", - "src": "863:1147:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1369, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "1005:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1018:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1005:14:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1021:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - }, - "value": "Owners have already been setup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", - "typeString": "literal_string \"Owners have already been setup\"" - } - ], - "id": 1368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "997:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "997:57:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "ExpressionStatement", - "src": "997:57:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1376, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1147:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1377, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1161:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1161:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1147:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1177:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1139:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1139:76:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1382, - "nodeType": "ExpressionStatement", - "src": "1139:76:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1384, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1285:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1299:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1285:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1302:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1383, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1277:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1277:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1389, - "nodeType": "ExpressionStatement", - "src": "1277:64:6" - }, - { - "assignments": [ - 1391 - ], - "declarations": [ - { - "constant": false, - "id": 1391, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1462, - "src": "1388:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1388:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1393, - "initialValue": { - "argumentTypes": null, - "id": 1392, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1411:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1388:38:6" - }, - { - "body": { - "id": 1445, - "nodeType": "Block", - "src": "1481:406:6", - "statements": [ - { - "assignments": [ - 1406 - ], - "declarations": [ - { - "constant": false, - "id": 1406, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1445, - "src": "1540:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1540:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1410, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1407, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1556:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1409, - "indexExpression": { - "argumentTypes": null, - "id": 1408, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1564:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1556:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1540:26:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1412, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1588:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1605:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1597:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1597:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1588:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1417, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1611:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1418, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1620:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1611:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1588:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1637:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1580:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1580:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1423, - "nodeType": "ExpressionStatement", - "src": "1580:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1425, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1736:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1427, - "indexExpression": { - "argumentTypes": null, - "id": 1426, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1743:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1736:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1761:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1753:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1753:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1736:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - }, - "value": "Duplicate owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", - "typeString": "literal_string \"Duplicate owner address provided\"" - } - ], - "id": 1424, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1728:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1728:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1434, - "nodeType": "ExpressionStatement", - "src": "1728:72:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1435, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1814:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1437, - "indexExpression": { - "argumentTypes": null, - "id": 1436, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1821:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1814:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1438, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1837:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1814:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1440, - "nodeType": "ExpressionStatement", - "src": "1814:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1441, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1856:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1442, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "1871:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1856:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1444, - "nodeType": "ExpressionStatement", - "src": "1856:20:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1398, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1456:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1399, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1460:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1460:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1456:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1446, - "initializationExpression": { - "assignments": [ - 1395 - ], - "declarations": [ - { - "constant": false, - "id": 1395, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1446, - "src": "1441:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1441:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1397, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1396, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1453:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1441:13:6" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1476:3:6", - "subExpression": { - "argumentTypes": null, - "id": 1402, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "1476:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1404, - "nodeType": "ExpressionStatement", - "src": "1476:3:6" - }, - "nodeType": "ForStatement", - "src": "1436:451:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1447, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "1896:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1449, - "indexExpression": { - "argumentTypes": null, - "id": 1448, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "1903:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1896:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1450, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "1919:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1896:38:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1452, - "nodeType": "ExpressionStatement", - "src": "1896:38:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1453, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1944:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1454, - "name": "_owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "1957:7:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1957:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1944:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1457, - "nodeType": "ExpressionStatement", - "src": "1944:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1458, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "1981:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1459, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1365, - "src": "1993:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1981:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1461, - "nodeType": "ExpressionStatement", - "src": "1981:22:6" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1463, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setupOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1363, - "name": "_owners", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "796:24:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "796:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1362, - "length": null, - "nodeType": "ArrayTypeName", - "src": "796:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1365, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1463, - "src": "822:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1364, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "822:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "795:46:6" - }, - "returnParameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [], - "src": "863:0:6" - }, - "scope": 1796, - "src": "775:1235:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1525, - "nodeType": "Block", - "src": "2354:541:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1473, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2413:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2430:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2422:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2422:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2413:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1478, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2436:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1479, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2445:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2436:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2413:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2462:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2405:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "2405:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1486, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2553:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1488, - "indexExpression": { - "argumentTypes": null, - "id": 1487, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2560:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2553:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2578:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2570:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2570:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2553:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2582:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2545:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2545:67:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "2545:67:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1496, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2622:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1498, - "indexExpression": { - "argumentTypes": null, - "id": 1497, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2629:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2622:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1499, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2638:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1501, - "indexExpression": { - "argumentTypes": null, - "id": 1500, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2645:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2638:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2622:39:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1503, - "nodeType": "ExpressionStatement", - "src": "2622:39:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1504, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "2671:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1506, - "indexExpression": { - "argumentTypes": null, - "id": 1505, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "2678:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2671:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1507, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2697:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2671:31:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1509, - "nodeType": "ExpressionStatement", - "src": "2671:31:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2712:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1510, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2712:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1512, - "nodeType": "ExpressionStatement", - "src": "2712:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1465, - "src": "2750:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1513, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1339, - "src": "2739:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2739:17:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1516, - "nodeType": "EmitStatement", - "src": "2734:22:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1517, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "2824:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1518, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "2837:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2824:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1524, - "nodeType": "IfStatement", - "src": "2820:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1521, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "2877:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1520, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "2861:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2861:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "2861:27:6" - } - } - ] - }, - "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1526, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1470, - "modifierName": { - "argumentTypes": null, - "id": 1469, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "2339:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2339:10:6" - } - ], - "name": "addOwnerWithThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1465, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "2281:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2281:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1467, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1526, - "src": "2296:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1466, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2296:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2280:35:6" - }, - "returnParameters": { - "id": 1471, - "nodeType": "ParameterList", - "parameters": [], - "src": "2354:0:6" - }, - "scope": 1796, - "src": "2250:645:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1599, - "nodeType": "Block", - "src": "3350:722:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1538, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3445:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3445:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1541, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "3463:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3445:28:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:55:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - }, - "value": "New owner count needs to be larger than new threshold" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", - "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" - } - ], - "id": 1537, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3437:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3437:94:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1545, - "nodeType": "ExpressionStatement", - "src": "3437:94:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1547, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3629:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3646:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3638:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3638:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3629:19:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1552, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3652:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1553, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "3661:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3652:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3629:47:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3678:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3621:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3621:90:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1558, - "nodeType": "ExpressionStatement", - "src": "3621:90:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1560, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3729:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1562, - "indexExpression": { - "argumentTypes": null, - "id": 1561, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3736:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3729:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1563, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3750:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3729:26:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3757:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1559, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3721:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3721:77:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1567, - "nodeType": "ExpressionStatement", - "src": "3721:77:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1568, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3808:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1570, - "indexExpression": { - "argumentTypes": null, - "id": 1569, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3815:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3808:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1571, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3828:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1573, - "indexExpression": { - "argumentTypes": null, - "id": 1572, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3835:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3828:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3808:33:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1575, - "nodeType": "ExpressionStatement", - "src": "3808:33:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1576, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "3851:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1578, - "indexExpression": { - "argumentTypes": null, - "id": 1577, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3858:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3851:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3875:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3867:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3867:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3851:26:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1583, - "nodeType": "ExpressionStatement", - "src": "3851:26:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "3887:12:6", - "subExpression": { - "argumentTypes": null, - "id": 1584, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3887:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1586, - "nodeType": "ExpressionStatement", - "src": "3887:12:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3927:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1587, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "3914:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3914:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1590, - "nodeType": "EmitStatement", - "src": "3909:24:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1591, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "4001:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1592, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "4014:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4001:23:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1598, - "nodeType": "IfStatement", - "src": "3997:68:6", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1595, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "4054:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1594, - "name": "changeThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "4038:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4038:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1597, - "nodeType": "ExpressionStatement", - "src": "4038:27:6" - } - } - ] - }, - "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1600, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1535, - "modifierName": { - "argumentTypes": null, - "id": 1534, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "3335:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3335:10:6" - } - ], - "name": "removeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1528, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3258:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3258:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3277:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3277:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1532, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1600, - "src": "3292:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3292:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3257:54:6" - }, - "returnParameters": { - "id": 1536, - "nodeType": "ParameterList", - "parameters": [], - "src": "3350:0:6" - }, - "scope": 1796, - "src": "3237:835:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1687, - "nodeType": "Block", - "src": "4518:747:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1612, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4577:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4597:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4589:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4589:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4577:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1617, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4603:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1618, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "4615:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4603:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4577:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4632:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1611, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4569:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4569:96:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1623, - "nodeType": "ExpressionStatement", - "src": "4569:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1625, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "4723:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1627, - "indexExpression": { - "argumentTypes": null, - "id": 1626, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "4730:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4723:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4751:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4743:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4743:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4723:30:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4755:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - }, - "value": "Address is already an owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", - "typeString": "literal_string \"Address is already an owner\"" - } - ], - "id": 1624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4715:70:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1634, - "nodeType": "ExpressionStatement", - "src": "4715:70:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1636, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "4886:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4906:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4898:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4898:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4886:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1641, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "4912:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1642, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "4924:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4912:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4886:53:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4941:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - }, - "value": "Invalid owner address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", - "typeString": "literal_string \"Invalid owner address provided\"" - } - ], - "id": 1635, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4878:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4878:96:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1647, - "nodeType": "ExpressionStatement", - "src": "4878:96:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1649, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "4992:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1651, - "indexExpression": { - "argumentTypes": null, - "id": 1650, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "4999:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4992:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1652, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5013:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4992:29:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5023:40:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - }, - "value": "Invalid prevOwner, owner pair provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", - "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" - } - ], - "id": 1648, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "4984:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4984:80:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1656, - "nodeType": "ExpressionStatement", - "src": "4984:80:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1657, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5074:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1659, - "indexExpression": { - "argumentTypes": null, - "id": 1658, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5081:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5074:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1660, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5093:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1662, - "indexExpression": { - "argumentTypes": null, - "id": 1661, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5100:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5093:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5074:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1664, - "nodeType": "ExpressionStatement", - "src": "5074:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1665, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5119:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1667, - "indexExpression": { - "argumentTypes": null, - "id": 1666, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "5126:9:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5119:17:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1668, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5139:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:28:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1670, - "nodeType": "ExpressionStatement", - "src": "5119:28:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1671, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "5157:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1673, - "indexExpression": { - "argumentTypes": null, - "id": 1672, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5164:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5157:16:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5184:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5176:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5176:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5157:29:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "5157:29:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1680, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "5214:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1679, - "name": "RemovedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "5201:12:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5201:22:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1682, - "nodeType": "EmitStatement", - "src": "5196:27:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "5249:8:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1683, - "name": "AddedOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1339, - "src": "5238:10:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5238:20:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "EmitStatement", - "src": "5233:25:6" - } - ] - }, - "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1688, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1609, - "modifierName": { - "argumentTypes": null, - "id": 1608, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "4503:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4503:10:6" - } - ], - "name": "swapOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1602, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4425:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4425:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1604, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4444:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1603, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4444:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1606, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 1688, - "src": "4462:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4462:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4424:55:6" - }, - "returnParameters": { - "id": 1610, - "nodeType": "ParameterList", - "parameters": [], - "src": "4518:0:6" - }, - "scope": 1796, - "src": "4406:859:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1717, - "nodeType": "Block", - "src": "5537:358:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1696, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5624:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1697, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "5638:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5624:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5650:37:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - }, - "value": "Threshold cannot exceed owner count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", - "typeString": "literal_string \"Threshold cannot exceed owner count\"" - } - ], - "id": 1695, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5616:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5616:72:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "ExpressionStatement", - "src": "5616:72:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1703, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5758:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5772:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5758:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5775:38:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - }, - "value": "Threshold needs to be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", - "typeString": "literal_string \"Threshold needs to be greater than 0\"" - } - ], - "id": 1702, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "5750:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5750:64:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1708, - "nodeType": "ExpressionStatement", - "src": "5750:64:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1709, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "5824:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1710, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "5836:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5824:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1712, - "nodeType": "ExpressionStatement", - "src": "5824:22:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1714, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "5878:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1713, - "name": "ChangedThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "5861:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:27:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1716, - "nodeType": "EmitStatement", - "src": "5856:32:6" - } - ] - }, - "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1718, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1693, - "modifierName": { - "argumentTypes": null, - "id": 1692, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "5522:10:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5522:10:6" - } - ], - "name": "changeThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1690, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 1718, - "src": "5479:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5479:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5478:20:6" - }, - "returnParameters": { - "id": 1694, - "nodeType": "ParameterList", - "parameters": [], - "src": "5537:0:6" - }, - "scope": 1796, - "src": "5454:441:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1725, - "nodeType": "Block", - "src": "5983:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1723, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "6000:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1722, - "id": 1724, - "nodeType": "Return", - "src": "5993:16:6" - } - ] - }, - "documentation": null, - "id": 1726, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getThreshold", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1719, - "nodeType": "ParameterList", - "parameters": [], - "src": "5922:2:6" - }, - "returnParameters": { - "id": 1722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1721, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "5970:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1720, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5970:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5969:9:6" - }, - "scope": 1796, - "src": "5901:115:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1745, - "nodeType": "Block", - "src": "6109:79:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1733, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6126:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1734, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6135:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6126:24:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1736, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6154:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1738, - "indexExpression": { - "argumentTypes": null, - "id": 1737, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6161:5:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6154:13:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6179:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6171:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6171:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6154:27:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6126:55:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1732, - "id": 1744, - "nodeType": "Return", - "src": "6119:62:6" - } - ] - }, - "documentation": null, - "id": 1746, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1729, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1728, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "6039:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6039:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6038:15:6" - }, - "returnParameters": { - "id": 1732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1731, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "6099:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1730, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6099:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6098:6:6" - }, - "scope": 1796, - "src": "6022:166:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1794, - "nodeType": "Block", - "src": "6358:377:6", - "statements": [ - { - "assignments": [ - 1755 - ], - "declarations": [ - { - "constant": false, - "id": 1755, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6368:22:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6368:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1754, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6368:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1761, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1759, - "name": "ownerCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "6407:10:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6393:13:6", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 1756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6397:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1757, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6397:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6393:25:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6368:50:6" - }, - { - "assignments": [ - 1763 - ], - "declarations": [ - { - "constant": false, - "id": 1763, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6462:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6462:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1765, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6478:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "6462:17:6" - }, - { - "assignments": [ - 1767 - ], - "declarations": [ - { - "constant": false, - "id": 1767, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 1794, - "src": "6489:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6489:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1768, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6512:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1770, - "indexExpression": { - "argumentTypes": null, - "id": 1769, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6519:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6512:23:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6489:46:6" - }, - { - "body": { - "id": 1790, - "nodeType": "Block", - "src": "6584:123:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1775, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "6598:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1777, - "indexExpression": { - "argumentTypes": null, - "id": 1776, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "6604:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6598:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1778, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6613:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6598:27:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1780, - "nodeType": "ExpressionStatement", - "src": "6598:27:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1781, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6639:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1782, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "6654:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 1784, - "indexExpression": { - "argumentTypes": null, - "id": 1783, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6661:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6654:20:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6639:35:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "6639:35:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6688:8:6", - "subExpression": { - "argumentTypes": null, - "id": 1787, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "6688:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1789, - "nodeType": "ExpressionStatement", - "src": "6688:8:6" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1772, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6551:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1773, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "6567:15:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6551:31:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1791, - "nodeType": "WhileStatement", - "src": "6545:162:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1792, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "6723:5:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1751, - "id": 1793, - "nodeType": "Return", - "src": "6716:12:6" - } - ] - }, - "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1795, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getOwners", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1747, - "nodeType": "ParameterList", - "parameters": [], - "src": "6288:2:6" - }, - "returnParameters": { - "id": 1751, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1750, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "6336:16:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1748, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6336:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1749, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6336:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6335:18:6" - }, - "scope": 1796, - "src": "6270:465:6", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1797, - "src": "248:6489:6" - } - ], - "src": "0:6738:6" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.628Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json deleted file mode 100644 index 55f2ccb7..00000000 --- a/safe-contracts/build/contracts/PayingProxy.json +++ /dev/null @@ -1,1592 +0,0 @@ -{ - "contractName": "PayingProxy", - "abi": [ - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - }, - { - "name": "initializer", - "type": "bytes" - }, - { - "name": "funder", - "type": "address" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "payment", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161050d38038061050d833981018060405260a081101561003357600080fd5b8101908080519060200190929190805164010000000081111561005557600080fd5b8281019050602081018481111561006b57600080fd5b815185600182028301116401000000008211171561008857600080fd5b5050929190602001805190602001909291908051906020019092919080519060200190929190505050848481600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561013a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806104e96024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101c75773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e60008214156101c3573d81fd5b5050505b505060008111156102fe57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610296578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061049d6026913960400191505060405180910390fd5b6102fd565b6102a782848361030860201b60201c565b6102fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806104c36026913960400191505060405180910390fd5b5b5b5050505050610421565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610404576020811461040c5760009450610416565b829450610416565b8151158315171594505b505050509392505050565b606e8061042f6000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a7230582024681387799ba2253552f956970b18a518a020d5c02040105d842d772adb3a8f0029436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "deployedBytecode": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a7230582024681387799ba2253552f956970b18a518a020d5c02040105d842d772adb3a8f0029", - "sourceMap": "459:1087:23:-;;;953:591;8:9:-1;5:2;;;30:1;27;20:12;5:2;953:591:23;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;953:591:23;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;953:591:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:11;1122;675::22;715:1:24;692:25;;:11;:25;;;;684:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:11;768:10;;:24;;;;;;;;;;;;;;;;;;622:177;742:1:22;721:11;:18;:22;717:519;;;886:42;882:1;876:8;872:57;1050:1;1047;1033:11;1027:18;1020:4;1007:11;1003:22;991:10;983:5;978:3;974:15;961:91;1086:4;1080:11;1131:14;1128:1;1123:3;1108:38;1178:1;1169:7;1166:14;1163:2;;;1195:14;1190:3;1183:27;1163:2;836:390;;;;610:632;;1178:1:23;1168:7;:11;1164:373;;;1223:1;1199:26;;:12;:26;;;1195:332;;;1315:6;:11;;:20;1327:7;1315:20;;;;;;;;;;;;;;;;;;;;;;;1307:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1195:332;;;1425:44;1439:12;1453:6;1461:7;1425:13;;;:44;;:::i;:::-;1417:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1195:332;1164:373;953:591;;;;;459:1087;;430:752:10;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:10;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;620:70:10;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;459:1087:23:-;;;;;;;", - "deployedSourceMap": "459:1087:23:-;;;1078:42:24;1074:1;1068:8;1064:57;1153:14;1150:1;1147;1134:34;1248:1;1245;1229:14;1226:1;1214:10;1209:3;1196:54;1284:16;1281:1;1278;1263:38;1329:1;1320:7;1317:14;1314:2;;;1344:16;1341:1;1334:27;1314:2;1386:16;1383:1;1376:27", - "source": "pragma solidity ^0.5.0;\nimport \"../common/SecuredTokenTransfer.sol\";\nimport \"./DelegateConstructorProxy.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy, SecuredTokenTransfer {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n /// @param funder Address that should be paid for the execution of this call\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n constructor(address _masterCopy, bytes memory initializer, address payable funder, address paymentToken, uint256 payment) \n DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n if (payment > 0) {\n if (paymentToken == address(0)) {\n // solium-disable-next-line security/no-send\n require(funder.send(payment), \"Could not pay safe creation with ether\");\n } else {\n require(transferToken(paymentToken, funder, payment), \"Could not pay safe creation with token\");\n }\n } \n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "exportedSymbols": { - "PayingProxy": [ - 3092 - ] - }, - "id": 3093, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3037, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "../common/SecuredTokenTransfer.sol", - "id": 3038, - "nodeType": "ImportDirective", - "scope": 3093, - "sourceUnit": 1865, - "src": "24:44:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 3039, - "nodeType": "ImportDirective", - "scope": 3093, - "sourceUnit": 3036, - "src": "69:40:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3040, - "name": "DelegateConstructorProxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3035, - "src": "483:24:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$3035", - "typeString": "contract DelegateConstructorProxy" - } - }, - "id": 3041, - "nodeType": "InheritanceSpecifier", - "src": "483:24:23" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3042, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1864, - "src": "509:20:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 3043, - "nodeType": "InheritanceSpecifier", - "src": "509:20:23" - } - ], - "contractDependencies": [ - 1864, - 3035, - 3121 - ], - "contractKind": "contract", - "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 3092, - "linearizedBaseContracts": [ - 3092, - 1864, - 3035, - 3121 - ], - "name": "PayingProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3090, - "nodeType": "Block", - "src": "1154:390:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3060, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1168:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1178:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1168:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3089, - "nodeType": "IfStatement", - "src": "1164:373:23", - "trueBody": { - "id": 3088, - "nodeType": "Block", - "src": "1181:356:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3063, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "1199:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1223:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1215:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1215:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1199:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3086, - "nodeType": "Block", - "src": "1399:128:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3079, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "1439:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3080, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "1453:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3081, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1461:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3078, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1425:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1425:44:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1471:40:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - }, - "value": "Could not pay safe creation with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - } - ], - "id": 3077, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1417:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1417:95:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3085, - "nodeType": "ExpressionStatement", - "src": "1417:95:23" - } - ] - }, - "id": 3087, - "nodeType": "IfStatement", - "src": "1195:332:23", - "trueBody": { - "id": 3076, - "nodeType": "Block", - "src": "1227:166:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1327:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3069, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "1315:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1315:11:23", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1315:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1337:40:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - }, - "value": "Could not pay safe creation with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - } - ], - "id": 3068, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1307:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1307:71:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3075, - "nodeType": "ExpressionStatement", - "src": "1307:71:23" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 3091, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3056, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "1109:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3057, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1122:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 3058, - "modifierName": { - "argumentTypes": null, - "id": 3055, - "name": "DelegateConstructorProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3035, - "src": "1084:24:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$3035_$", - "typeString": "type(contract DelegateConstructorProxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1084:50:23" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "965:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "965:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "986:24:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "986:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "funder", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1012:22:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:15:23", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3051, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1036:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1058:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1058:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:110:23" - }, - "returnParameters": { - "id": 3059, - "nodeType": "ParameterList", - "parameters": [], - "src": "1154:0:23" - }, - "scope": 3092, - "src": "953:591:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3093, - "src": "459:1087:23" - } - ], - "src": "0:1547:23" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/PayingProxy.sol", - "exportedSymbols": { - "PayingProxy": [ - 3092 - ] - }, - "id": 3093, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3037, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:23" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "file": "../common/SecuredTokenTransfer.sol", - "id": 3038, - "nodeType": "ImportDirective", - "scope": 3093, - "sourceUnit": 1865, - "src": "24:44:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol", - "file": "./DelegateConstructorProxy.sol", - "id": 3039, - "nodeType": "ImportDirective", - "scope": 3093, - "sourceUnit": 3036, - "src": "69:40:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3040, - "name": "DelegateConstructorProxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3035, - "src": "483:24:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DelegateConstructorProxy_$3035", - "typeString": "contract DelegateConstructorProxy" - } - }, - "id": 3041, - "nodeType": "InheritanceSpecifier", - "src": "483:24:23" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3042, - "name": "SecuredTokenTransfer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1864, - "src": "509:20:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1864", - "typeString": "contract SecuredTokenTransfer" - } - }, - "id": 3043, - "nodeType": "InheritanceSpecifier", - "src": "509:20:23" - } - ], - "contractDependencies": [ - 1864, - 3035, - 3121 - ], - "contractKind": "contract", - "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 3092, - "linearizedBaseContracts": [ - 3092, - 1864, - 3035, - 3121 - ], - "name": "PayingProxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3090, - "nodeType": "Block", - "src": "1154:390:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3060, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1168:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1178:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1168:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3089, - "nodeType": "IfStatement", - "src": "1164:373:23", - "trueBody": { - "id": 3088, - "nodeType": "Block", - "src": "1181:356:23", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3063, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "1199:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1223:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1215:7:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1215:10:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1199:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3086, - "nodeType": "Block", - "src": "1399:128:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3079, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3051, - "src": "1439:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3080, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "1453:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3081, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1461:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3078, - "name": "transferToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1425:13:23", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1425:44:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1471:40:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - }, - "value": "Could not pay safe creation with token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", - "typeString": "literal_string \"Could not pay safe creation with token\"" - } - ], - "id": 3077, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1417:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1417:95:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3085, - "nodeType": "ExpressionStatement", - "src": "1417:95:23" - } - ] - }, - "id": 3087, - "nodeType": "IfStatement", - "src": "1195:332:23", - "trueBody": { - "id": 3076, - "nodeType": "Block", - "src": "1227:166:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3053, - "src": "1327:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3069, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "1315:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "send", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1315:11:23", - "typeDescriptions": { - "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) returns (bool)" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1315:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1337:40:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - }, - "value": "Could not pay safe creation with ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", - "typeString": "literal_string \"Could not pay safe creation with ether\"" - } - ], - "id": 3068, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1307:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1307:71:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3075, - "nodeType": "ExpressionStatement", - "src": "1307:71:23" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", - "id": 3091, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3056, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "1109:11:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3057, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1122:11:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 3058, - "modifierName": { - "argumentTypes": null, - "id": 3055, - "name": "DelegateConstructorProxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3035, - "src": "1084:24:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$3035_$", - "typeString": "type(contract DelegateConstructorProxy)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1084:50:23" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "965:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "965:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3047, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "986:24:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3046, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "986:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3049, - "name": "funder", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1012:22:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:15:23", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3051, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1036:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3053, - "name": "payment", - "nodeType": "VariableDeclaration", - "scope": 3091, - "src": "1058:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3052, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1058:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:110:23" - }, - "returnParameters": { - "id": 3059, - "nodeType": "ParameterList", - "parameters": [], - "src": "1154:0:23" - }, - "scope": 3092, - "src": "953:591:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3093, - "src": "459:1087:23" - } - ], - "src": "0:1547:23" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.645Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json deleted file mode 100644 index 47d4fe2f..00000000 --- a/safe-contracts/build/contracts/Proxy.json +++ /dev/null @@ -1,772 +0,0 @@ -{ - "contractName": "Proxy", - "abi": [ - { - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040516020806101a88339810180604052602081101561003057600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101846024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050606e806101166000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "deployedBytecode": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029", - "sourceMap": "190:1231:24:-;;;622:177;8:9:-1;5:2;;;30:1;27;20:12;5:2;622:177:24;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;622:177:24;;;;;;;;;;;;;;;;715:1;692:25;;:11;:25;;;;684:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:11;768:10;;:24;;;;;;;;;;;;;;;;;;622:177;190:1231;;;;;;", - "deployedSourceMap": "190:1231:24:-;;;1078:42;1074:1;1068:8;1064:57;1153:14;1150:1;1147;1134:34;1248:1;1245;1229:14;1226:1;1214:10;1209:3;1196:54;1284:16;1281:1;1278;1263:38;1329:1;1320:7;1317:14;1314:2;;;1344:16;1341:1;1334:27;1314:2;1386:16;1383:1;1376:27", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - \ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`\n address internal masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != address(0), \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 3121 - ] - }, - "id": 3122, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3094, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3121, - "linearizedBaseContracts": [ - 3121 - ], - "name": "Proxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3096, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "468:27:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "468:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3114, - "nodeType": "Block", - "src": "674:125:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3102, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3098, - "src": "692:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "707:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "707:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "692:25:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "719:38:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 3101, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "684:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "684:74:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3109, - "nodeType": "ExpressionStatement", - "src": "684:74:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 3112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3110, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3096, - "src": "768:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3111, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3098, - "src": "781:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "768:24:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3113, - "nodeType": "ExpressionStatement", - "src": "768:24:24" - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 3115, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3098, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3115, - "src": "634:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3097, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "634:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:21:24" - }, - "returnParameters": { - "id": 3100, - "nodeType": "ParameterList", - "parameters": [], - "src": "674:0:24" - }, - "scope": 3121, - "src": "622:177:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3119, - "nodeType": "Block", - "src": "949:470:24", - "statements": [ - { - "externalReferences": [], - "id": 3118, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "1023:396:24" - } - ] - }, - "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 3120, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3116, - "nodeType": "ParameterList", - "parameters": [], - "src": "909:2:24" - }, - "returnParameters": { - "id": 3117, - "nodeType": "ParameterList", - "parameters": [], - "src": "949:0:24" - }, - "scope": 3121, - "src": "900:519:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3122, - "src": "190:1231:24" - } - ], - "src": "0:1422:24" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "exportedSymbols": { - "Proxy": [ - 3121 - ] - }, - "id": 3122, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3094, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3121, - "linearizedBaseContracts": [ - 3121 - ], - "name": "Proxy", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3096, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "468:27:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "468:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3114, - "nodeType": "Block", - "src": "674:125:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3102, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3098, - "src": "692:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "707:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "707:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "692:25:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "719:38:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - }, - "value": "Invalid master copy address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", - "typeString": "literal_string \"Invalid master copy address provided\"" - } - ], - "id": 3101, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "684:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "684:74:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3109, - "nodeType": "ExpressionStatement", - "src": "684:74:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 3112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3110, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3096, - "src": "768:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3111, - "name": "_masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3098, - "src": "781:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "768:24:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3113, - "nodeType": "ExpressionStatement", - "src": "768:24:24" - } - ] - }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 3115, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3098, - "name": "_masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3115, - "src": "634:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3097, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "634:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "633:21:24" - }, - "returnParameters": { - "id": 3100, - "nodeType": "ParameterList", - "parameters": [], - "src": "674:0:24" - }, - "scope": 3121, - "src": "622:177:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3119, - "nodeType": "Block", - "src": "949:470:24", - "statements": [ - { - "externalReferences": [], - "id": 3118, - "nodeType": "InlineAssembly", - "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "1023:396:24" - } - ] - }, - "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 3120, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3116, - "nodeType": "ParameterList", - "parameters": [], - "src": "909:2:24" - }, - "returnParameters": { - "id": 3117, - "nodeType": "ParameterList", - "parameters": [], - "src": "949:0:24" - }, - "scope": 3121, - "src": "900:519:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3122, - "src": "190:1231:24" - } - ], - "src": "0:1422:24" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.646Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json deleted file mode 100644 index 2dbbec0f..00000000 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ /dev/null @@ -1,3087 +0,0 @@ -{ - "contractName": "ProxyFactory", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proxy", - "type": "address" - } - ], - "name": "ProxyCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "masterCopy", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "createProxy", - "outputs": [ - { - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyRuntimeCode", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyCreationCode", - "outputs": [ - { - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_mastercopy", - "type": "address" - }, - { - "name": "initializer", - "type": "bytes" - }, - { - "name": "saltNonce", - "type": "uint256" - } - ], - "name": "createProxyWithNonce", - "outputs": [ - { - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506108c4806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631688f0b91461005157806353e5d9351461017657806361b69abd146101f9578063addacc0f14610314575b600080fd5b6101346004803603606081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100a457600080fd5b8201836020820111156100b657600080fd5b803590602001918460018302840111640100000000831117156100d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050610397565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017e610520565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101be5780820151818401526020810190506101a3565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d26004803603604081101561020f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061054b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031c61063e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083805190602001208360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506060604051806020016103e490610669565b6020820181038252601f19601f820116604052508673ffffffffffffffffffffffffffffffffffffffff166040516020018083805190602001908083835b602083106104455780518252602082019150602081019050602083039250610422565b6001836020036101000a038019825116818451168082178552505050505050905001828152602001925050506040516020818303038152906040529050818151826020016000f592506000855111156104b45760008060008751602089016000885af114156104b357600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150509392505050565b60606040518060200161053290610669565b6020820181038252601f19601f82011660405250905090565b60008260405161055a90610669565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156105ac573d6000803e3d6000fd5b5090506000825111156105d55760008060008451602086016000865af114156105d457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b60606040518060200161065090610676565b6020820181038252601f19601f82011660405250905090565b6101a88061068383390190565b606e8061082b8339019056fe608060405234801561001057600080fd5b506040516020806101a88339810180604052602081101561003057600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101846024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050606e806101166000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029a165627a7a7230582023f72d4ccc594478483c3a312c69d042d409f3aeb1e14da602e12ba50bfc048e0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631688f0b91461005157806353e5d9351461017657806361b69abd146101f9578063addacc0f14610314575b600080fd5b6101346004803603606081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100a457600080fd5b8201836020820111156100b657600080fd5b803590602001918460018302840111640100000000831117156100d857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050610397565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017e610520565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101be5780820151818401526020810190506101a3565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d26004803603604081101561020f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561024c57600080fd5b82018360208201111561025e57600080fd5b8035906020019184600183028401116401000000008311171561028057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061054b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61031c61063e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083805190602001208360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506060604051806020016103e490610669565b6020820181038252601f19601f820116604052508673ffffffffffffffffffffffffffffffffffffffff166040516020018083805190602001908083835b602083106104455780518252602082019150602081019050602083039250610422565b6001836020036101000a038019825116818451168082178552505050505050905001828152602001925050506040516020818303038152906040529050818151826020016000f592506000855111156104b45760008060008751602089016000885af114156104b357600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8083604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150509392505050565b60606040518060200161053290610669565b6020820181038252601f19601f82011660405250905090565b60008260405161055a90610669565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f0801580156105ac573d6000803e3d6000fd5b5090506000825111156105d55760008060008451602086016000865af114156105d457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b60606040518060200161065090610676565b6020820181038252601f19601f82011660405250905090565b6101a88061068383390190565b606e8061082b8339019056fe608060405234801561001057600080fd5b506040516020806101a88339810180604052602081101561003057600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101846024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050606e806101166000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029a165627a7a7230582023f72d4ccc594478483c3a312c69d042d409f3aeb1e14da602e12ba50bfc048e0029", - "sourceMap": "225:2576:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:2576:25;;;;;;;", - "deployedSourceMap": "225:2576:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:2576:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1843:956;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1843:956:25;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1843:956:25;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1843:956:25;;;;;;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;1843:956:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1843:956:25;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1356:112;;;:::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;1356:112:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;532:423;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;532:423:25;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;532:423:25;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;532:423:25;;;;;;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;532:423:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;532:423:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1095:110;;;:::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;1095:110:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1843:956;1971:11;2140:12;2192:11;2182:22;;;;;;2206:9;2165:51;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2165:51:25;;;2155:62;;;;;;2140:77;;2227:27;2274:24;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;2274:24:25;2308:11;2300:20;;2257:64;;;;;;;;;;;;;;;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;;;2257:64:25;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2257:64:25;;;2227:94;;2490:4;2473:14;2467:21;2450:14;2444:4;2440:25;2435:3;2427:68;2418:77;;2539:1;2518:11;:18;:22;2514:257;;;2726:1;2722;2719;2705:11;2699:18;2692:4;2679:11;2675:22;2672:1;2665:5;2660:3;2655:69;2652:76;2649:2;;;2740:1;2738;2731:11;2649:2;2631:127;2772:20;2786:5;2772:20;;;;;;;;;;;;;;;;;;;;;;1843:956;;;;;;;:::o;1356:112::-;1406:12;1437:24;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;1437:24:25;1430:31;;1356:112;:::o;532:423::-;624:11;669:10;659:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;659:21:25;651:29;;708:1;694:4;:11;:15;690:237;;;881:1;877;874;867:4;861:11;854:4;848;844:15;841:1;834:5;829:3;824:55;821:62;818:2;;;896:1;893;886:12;818:2;800:114;928:20;942:5;928:20;;;;;;;;;;;;;;;;;;;;;;532:423;;;;:::o;1095:110::-;1144:12;1175:23;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;1175:23:25;1168:30;;1095:110;:::o;225:2576::-;;;;;;;;:::o;:::-;;;;;;;;:::o", - "source": "pragma solidity ^0.5.3;\nimport \"./Proxy.sol\";\n\n\n/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n/// @author Stefan George - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param masterCopy Address of master copy.\n /// @param data Payload for message call sent to new proxy contract.\n function createProxy(address masterCopy, bytes memory data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n\n /// @dev Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.\n function proxyRuntimeCode() public pure returns (bytes memory) {\n return type(Proxy).runtimeCode;\n }\n\n /// @dev Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.\n function proxyCreationCode() public pure returns (bytes memory) {\n return type(Proxy).creationCode;\n }\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param _mastercopy Address of master copy.\n /// @param initializer Payload for message call sent to new proxy contract.\n /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.\n function createProxyWithNonce(address _mastercopy, bytes memory initializer, uint256 saltNonce)\n public\n returns (Proxy proxy)\n {\n // If the initializer changes the proxy address should change too. Hashing the initializer data is cheaper than just concatinating it\n bytes32 salt = keccak256(abi.encodePacked(keccak256(initializer), saltNonce));\n bytes memory deploymentData = abi.encodePacked(type(Proxy).creationCode, uint256(_mastercopy));\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n proxy := create2(0x0, add(0x20, deploymentData), mload(deploymentData), salt)\n }\n if (initializer.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(initializer, 0x20), mload(initializer), 0, 0), 0) { revert(0,0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "exportedSymbols": { - "ProxyFactory": [ - 3226 - ] - }, - "id": 3227, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3123, - "literals": [ - "solidity", - "^", - "0.5", - ".3" - ], - "nodeType": "PragmaDirective", - "src": "0:23:25" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 3124, - "nodeType": "ImportDirective", - "scope": 3227, - "sourceUnit": 3122, - "src": "24:21:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 3121 - ], - "contractKind": "contract", - "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3226, - "linearizedBaseContracts": [ - 3226 - ], - "name": "ProxyFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 3128, - "name": "ProxyCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 3127, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3126, - "indexed": false, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "274:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3125, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "274:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "273:13:25" - }, - "src": "254:33:25" - }, - { - "body": { - "id": 3154, - "nodeType": "Block", - "src": "641:314:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3137, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "651:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3140, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "669:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "659:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$3121_$", - "typeString": "function (address) returns (contract Proxy)" - }, - "typeName": { - "contractScope": null, - "id": 3138, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "663:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - }, - "id": 3141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "659:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "src": "651:29:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "id": 3143, - "nodeType": "ExpressionStatement", - "src": "651:29:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3144, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "694:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "694:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "708:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "694:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3149, - "nodeType": "IfStatement", - "src": "690:237:25", - "trueBody": { - "externalReferences": [ - { - "data": { - "declaration": 3132, - "isOffset": false, - "isSlot": false, - "src": "867:4:25", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 3132, - "isOffset": false, - "isSlot": false, - "src": "848:4:25", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 3135, - "isOffset": false, - "isSlot": false, - "src": "834:5:25", - "valueSize": 1 - } - } - ], - "id": 3148, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "791:136:25" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3151, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "942:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - ], - "id": 3150, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "928:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "928:20:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3153, - "nodeType": "EmitStatement", - "src": "923:25:25" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 3155, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createProxy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3130, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "553:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3132, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "573:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3131, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "552:39:25" - }, - "returnParameters": { - "id": 3136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3135, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "624:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3134, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "624:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "623:13:25" - }, - "scope": 3226, - "src": "532:423:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3165, - "nodeType": "Block", - "src": "1158:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3161, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "1180:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3160, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "1175:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1175:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "runtimeCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1175:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3159, - "id": 3164, - "nodeType": "Return", - "src": "1168:30:25" - } - ] - }, - "documentation": "@dev Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.", - "id": 3166, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "proxyRuntimeCode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3156, - "nodeType": "ParameterList", - "parameters": [], - "src": "1120:2:25" - }, - "returnParameters": { - "id": 3159, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3158, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "1144:12:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3157, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1144:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1143:14:25" - }, - "scope": 3226, - "src": "1095:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3176, - "nodeType": "Block", - "src": "1420:48:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3172, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "1442:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3171, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "1437:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1437:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "creationCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1437:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3170, - "id": 3175, - "nodeType": "Return", - "src": "1430:31:25" - } - ] - }, - "documentation": "@dev Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.", - "id": 3177, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "proxyCreationCode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3167, - "nodeType": "ParameterList", - "parameters": [], - "src": "1382:2:25" - }, - "returnParameters": { - "id": 3170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3177, - "src": "1406:12:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1406:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1405:14:25" - }, - "scope": 3226, - "src": "1356:112:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3224, - "nodeType": "Block", - "src": "1988:811:25", - "statements": [ - { - "assignments": [ - 3189 - ], - "declarations": [ - { - "constant": false, - "id": 3189, - "name": "salt", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "2140:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3188, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2140:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3199, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3194, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3181, - "src": "2192:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3193, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2182:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2182:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3196, - "name": "saltNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "2206:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3191, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2165:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2165:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2165:51:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3190, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2155:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2155:62:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2140:77:25" - }, - { - "assignments": [ - 3201 - ], - "declarations": [ - { - "constant": false, - "id": 3201, - "name": "deploymentData", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "2227:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3200, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2227:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3212, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3205, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "2279:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3204, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "2274:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2274:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "creationCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2274:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3209, - "name": "_mastercopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3179, - "src": "2308:11:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2300:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 3210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2300:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3202, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2257:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2257:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2257:64:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2227:94:25" - }, - { - "externalReferences": [ - { - "proxy": { - "declaration": 3186, - "isOffset": false, - "isSlot": false, - "src": "2418:5:25", - "valueSize": 1 - } - }, - { - "deploymentData": { - "declaration": 3201, - "isOffset": false, - "isSlot": false, - "src": "2473:14:25", - "valueSize": 1 - } - }, - { - "deploymentData": { - "declaration": 3201, - "isOffset": false, - "isSlot": false, - "src": "2450:14:25", - "valueSize": 1 - } - }, - { - "salt": { - "declaration": 3189, - "isOffset": false, - "isSlot": false, - "src": "2490:4:25", - "valueSize": 1 - } - } - ], - "id": 3213, - "nodeType": "InlineAssembly", - "operations": "{\n proxy := create2(0x0, add(0x20, deploymentData), mload(deploymentData), salt)\n}", - "src": "2395:121:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3181, - "src": "2518:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2539:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2518:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3219, - "nodeType": "IfStatement", - "src": "2514:257:25", - "trueBody": { - "externalReferences": [ - { - "initializer": { - "declaration": 3181, - "isOffset": false, - "isSlot": false, - "src": "2705:11:25", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 3181, - "isOffset": false, - "isSlot": false, - "src": "2679:11:25", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 3186, - "isOffset": false, - "isSlot": false, - "src": "2665:5:25", - "valueSize": 1 - } - } - ], - "id": 3218, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(initializer, 0x20), mload(initializer), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "2622:149:25" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3221, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3186, - "src": "2786:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - ], - "id": 3220, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "2772:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:20:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "2767:25:25" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param _mastercopy Address of master copy.\n @param initializer Payload for message call sent to new proxy contract.\n @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.", - "id": 3225, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createProxyWithNonce", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3179, - "name": "_mastercopy", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1873:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1873:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3181, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1894:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3180, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1894:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3183, - "name": "saltNonce", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1920:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1920:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1872:66:25" - }, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3186, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1971:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3185, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "1971:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:13:25" - }, - "scope": 3226, - "src": "1843:956:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3227, - "src": "225:2576:25" - } - ], - "src": "0:2802:25" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/ProxyFactory.sol", - "exportedSymbols": { - "ProxyFactory": [ - 3226 - ] - }, - "id": 3227, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3123, - "literals": [ - "solidity", - "^", - "0.5", - ".3" - ], - "nodeType": "PragmaDirective", - "src": "0:23:25" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol", - "file": "./Proxy.sol", - "id": 3124, - "nodeType": "ImportDirective", - "scope": 3227, - "sourceUnit": 3122, - "src": "24:21:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 3121 - ], - "contractKind": "contract", - "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3226, - "linearizedBaseContracts": [ - 3226 - ], - "name": "ProxyFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 3128, - "name": "ProxyCreation", - "nodeType": "EventDefinition", - "parameters": { - "id": 3127, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3126, - "indexed": false, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "274:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3125, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "274:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "273:13:25" - }, - "src": "254:33:25" - }, - { - "body": { - "id": 3154, - "nodeType": "Block", - "src": "641:314:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3137, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "651:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3140, - "name": "masterCopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "669:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "659:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$3121_$", - "typeString": "function (address) returns (contract Proxy)" - }, - "typeName": { - "contractScope": null, - "id": 3138, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "663:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - }, - "id": 3141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "659:21:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "src": "651:29:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "id": 3143, - "nodeType": "ExpressionStatement", - "src": "651:29:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3144, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "694:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "694:11:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "708:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "694:15:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3149, - "nodeType": "IfStatement", - "src": "690:237:25", - "trueBody": { - "externalReferences": [ - { - "data": { - "declaration": 3132, - "isOffset": false, - "isSlot": false, - "src": "867:4:25", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 3132, - "isOffset": false, - "isSlot": false, - "src": "848:4:25", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 3135, - "isOffset": false, - "isSlot": false, - "src": "834:5:25", - "valueSize": 1 - } - } - ], - "id": 3148, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "791:136:25" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3151, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "942:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - ], - "id": 3150, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "928:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "928:20:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3153, - "nodeType": "EmitStatement", - "src": "923:25:25" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 3155, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createProxy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3130, - "name": "masterCopy", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "553:18:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3132, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "573:17:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3131, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "573:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "552:39:25" - }, - "returnParameters": { - "id": 3136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3135, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3155, - "src": "624:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3134, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "624:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "623:13:25" - }, - "scope": 3226, - "src": "532:423:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3165, - "nodeType": "Block", - "src": "1158:47:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3161, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "1180:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3160, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "1175:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1175:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "runtimeCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1175:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3159, - "id": 3164, - "nodeType": "Return", - "src": "1168:30:25" - } - ] - }, - "documentation": "@dev Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.", - "id": 3166, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "proxyRuntimeCode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3156, - "nodeType": "ParameterList", - "parameters": [], - "src": "1120:2:25" - }, - "returnParameters": { - "id": 3159, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3158, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "1144:12:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3157, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1144:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1143:14:25" - }, - "scope": 3226, - "src": "1095:110:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3176, - "nodeType": "Block", - "src": "1420:48:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3172, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "1442:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3171, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "1437:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1437:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "creationCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1437:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 3170, - "id": 3175, - "nodeType": "Return", - "src": "1430:31:25" - } - ] - }, - "documentation": "@dev Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.", - "id": 3177, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "proxyCreationCode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3167, - "nodeType": "ParameterList", - "parameters": [], - "src": "1382:2:25" - }, - "returnParameters": { - "id": 3170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3177, - "src": "1406:12:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1406:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1405:14:25" - }, - "scope": 3226, - "src": "1356:112:25", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3224, - "nodeType": "Block", - "src": "1988:811:25", - "statements": [ - { - "assignments": [ - 3189 - ], - "declarations": [ - { - "constant": false, - "id": 3189, - "name": "salt", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "2140:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3188, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2140:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3199, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3194, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3181, - "src": "2192:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3193, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2182:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2182:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3196, - "name": "saltNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3183, - "src": "2206:9:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3191, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2165:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2165:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2165:51:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3190, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "2155:9:25", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2155:62:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2140:77:25" - }, - { - "assignments": [ - 3201 - ], - "declarations": [ - { - "constant": false, - "id": 3201, - "name": "deploymentData", - "nodeType": "VariableDeclaration", - "scope": 3224, - "src": "2227:27:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3200, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2227:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3212, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3205, - "name": "Proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "2279:5:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$", - "typeString": "type(contract Proxy)" - } - ], - "id": 3204, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4379, - "src": "2274:4:25", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 3206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2274:11:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_Proxy_$3121", - "typeString": "type(contract Proxy)" - } - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "creationCode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2274:24:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3209, - "name": "_mastercopy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3179, - "src": "2308:11:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2300:7:25", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 3210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2300:20:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3202, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2257:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2257:16:25", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2257:64:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2227:94:25" - }, - { - "externalReferences": [ - { - "proxy": { - "declaration": 3186, - "isOffset": false, - "isSlot": false, - "src": "2418:5:25", - "valueSize": 1 - } - }, - { - "deploymentData": { - "declaration": 3201, - "isOffset": false, - "isSlot": false, - "src": "2473:14:25", - "valueSize": 1 - } - }, - { - "deploymentData": { - "declaration": 3201, - "isOffset": false, - "isSlot": false, - "src": "2450:14:25", - "valueSize": 1 - } - }, - { - "salt": { - "declaration": 3189, - "isOffset": false, - "isSlot": false, - "src": "2490:4:25", - "valueSize": 1 - } - } - ], - "id": 3213, - "nodeType": "InlineAssembly", - "operations": "{\n proxy := create2(0x0, add(0x20, deploymentData), mload(deploymentData), salt)\n}", - "src": "2395:121:25" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3181, - "src": "2518:11:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2518:18:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2539:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2518:22:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3219, - "nodeType": "IfStatement", - "src": "2514:257:25", - "trueBody": { - "externalReferences": [ - { - "initializer": { - "declaration": 3181, - "isOffset": false, - "isSlot": false, - "src": "2705:11:25", - "valueSize": 1 - } - }, - { - "initializer": { - "declaration": 3181, - "isOffset": false, - "isSlot": false, - "src": "2679:11:25", - "valueSize": 1 - } - }, - { - "proxy": { - "declaration": 3186, - "isOffset": false, - "isSlot": false, - "src": "2665:5:25", - "valueSize": 1 - } - } - ], - "id": 3218, - "nodeType": "InlineAssembly", - "operations": "{\n if eq(call(gas(), proxy, 0, add(initializer, 0x20), mload(initializer), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "2622:149:25" - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3221, - "name": "proxy", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3186, - "src": "2786:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - ], - "id": 3220, - "name": "ProxyCreation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3128, - "src": "2772:13:25", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$3121_$returns$__$", - "typeString": "function (contract Proxy)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:20:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "2767:25:25" - } - ] - }, - "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param _mastercopy Address of master copy.\n @param initializer Payload for message call sent to new proxy contract.\n @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.", - "id": 3225, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createProxyWithNonce", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3179, - "name": "_mastercopy", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1873:19:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1873:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3181, - "name": "initializer", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1894:24:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3180, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1894:5:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3183, - "name": "saltNonce", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1920:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1920:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1872:66:25" - }, - "returnParameters": { - "id": 3187, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3186, - "name": "proxy", - "nodeType": "VariableDeclaration", - "scope": 3225, - "src": "1971:11:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - }, - "typeName": { - "contractScope": null, - "id": 3185, - "name": "Proxy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3121, - "src": "1971:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$3121", - "typeString": "contract Proxy" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:13:25" - }, - "scope": 3226, - "src": "1843:956:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3227, - "src": "225:2576:25" - } - ], - "src": "0:2802:25" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": { - "1": { - "links": {}, - "events": {}, - "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C", - "updated_at": 1555073253712 - }, - "4": { - "links": {}, - "events": {}, - "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C", - "updated_at": 1555073253772 - }, - "5": { - "links": {}, - "events": {}, - "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C", - "updated_at": 1555073253855 - }, - "42": { - "links": {}, - "events": {}, - "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C", - "updated_at": 1555073253817 - } - }, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.646Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SafeMath.json b/safe-contracts/build/contracts/SafeMath.json deleted file mode 100644 index ada32960..00000000 --- a/safe-contracts/build/contracts/SafeMath.json +++ /dev/null @@ -1,3279 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "bytecode": "0x604c6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582024212ca6b61abdf227986e0d6843a1d5a04d5ee5fec8912b8179b4a36485b0430029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582024212ca6b61abdf227986e0d6843a1d5a04d5ee5fec8912b8179b4a36485b0430029", - "sourceMap": "172:1531:13:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "172:1531:13:-;;;;;;;;", - "source": "pragma solidity ^0.5.0;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that revert on error\n * TODO: remove once open zeppelin update to solc 0.5.0\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0); // Solidity only automatically asserts when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two numbers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two numbers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/external/SafeMath.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/external/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 2065 - ] - }, - "id": 2066, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1939, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:13" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error\nTODO: remove once open zeppelin update to solc 0.5.0", - "fullyImplemented": true, - "id": 2065, - "linearizedBaseContracts": [ - 2065 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1971, - "nodeType": "Block", - "src": "326:314:13", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1948, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "541:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "546:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "541:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1954, - "nodeType": "IfStatement", - "src": "537:35:13", - "trueBody": { - "id": 1953, - "nodeType": "Block", - "src": "549:23:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "564:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1947, - "id": 1952, - "nodeType": "Return", - "src": "557:8:13" - } - ] - } - }, - { - "assignments": [ - 1956 - ], - "declarations": [ - { - "constant": false, - "id": 1956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1971, - "src": "578:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "578:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1960, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1957, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "590:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1958, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1943, - "src": "594:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "590:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "578:17:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1962, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "609:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1963, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "613:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "609:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1965, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1943, - "src": "618:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "609:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1961, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "601:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "601:19:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1968, - "nodeType": "ExpressionStatement", - "src": "601:19:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 1969, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "634:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1947, - "id": 1970, - "nodeType": "Return", - "src": "627:8:13" - } - ] - }, - "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 1972, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1941, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "272:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "272:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1943, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "283:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "283:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "271:22:13" - }, - "returnParameters": { - "id": 1947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1946, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "317:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "317:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "316:9:13" - }, - "scope": 2065, - "src": "259:381:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1995, - "nodeType": "Block", - "src": "817:203:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1982, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "831:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1983, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "835:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "831:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1981, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "823:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "823:14:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1986, - "nodeType": "ExpressionStatement", - "src": "823:14:13" - }, - { - "assignments": [ - 1988 - ], - "declarations": [ - { - "constant": false, - "id": 1988, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1995, - "src": "901:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1992, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1989, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1974, - "src": "913:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1990, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "917:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "913:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "901:17:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 1993, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "1014:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1980, - "id": 1994, - "nodeType": "Return", - "src": "1007:8:13" - } - ] - }, - "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 1996, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1974, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "763:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1973, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "763:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1976, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "774:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1975, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "762:22:13" - }, - "returnParameters": { - "id": 1980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1979, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "808:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "808:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "807:9:13" - }, - "scope": 2065, - "src": "750:270:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "1200:64:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2006, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "1214:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2007, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1998, - "src": "1219:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1214:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2005, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1206:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1206:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "1206:15:13" - }, - { - "assignments": [ - 2012 - ], - "declarations": [ - { - "constant": false, - "id": 2012, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "1227:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2011, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1227:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2016, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2013, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1998, - "src": "1239:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2014, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "1243:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1239:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1227:17:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 2017, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2012, - "src": "1258:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2004, - "id": 2018, - "nodeType": "Return", - "src": "1251:8:13" - } - ] - }, - "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1146:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1146:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2000, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1157:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1145:22:13" - }, - "returnParameters": { - "id": 2004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2003, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1191:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1191:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1190:9:13" - }, - "scope": 2065, - "src": "1133:131:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "1394:64:13", - "statements": [ - { - "assignments": [ - 2030 - ], - "declarations": [ - { - "constant": false, - "id": 2030, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "1400:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1400:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2034, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2031, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1412:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2032, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "1416:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1412:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1400:17:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2036, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1431:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2037, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1436:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1431:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2035, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1423:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1423:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2040, - "nodeType": "ExpressionStatement", - "src": "1423:15:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 2041, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1452:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2028, - "id": 2042, - "nodeType": "Return", - "src": "1445:8:13" - } - ] - }, - "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1340:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2021, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1340:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2024, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1351:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2023, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1351:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1339:22:13" - }, - "returnParameters": { - "id": 2028, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2027, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1385:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2026, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1385:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1384:9:13" - }, - "scope": 2065, - "src": "1327:131:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2063, - "nodeType": "Block", - "src": "1657:44:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2054, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2048, - "src": "1671:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1676:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1671:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2053, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1663:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1663:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2058, - "nodeType": "ExpressionStatement", - "src": "1663:15:13" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2059, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "1691:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2060, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2048, - "src": "1695:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1691:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2052, - "id": 2062, - "nodeType": "Return", - "src": "1684:12:13" - } - ] - }, - "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 2064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1603:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1603:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2048, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1614:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1614:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1602:22:13" - }, - "returnParameters": { - "id": 2052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2051, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1648:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2050, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1648:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:9:13" - }, - "scope": 2065, - "src": "1590:111:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 2066, - "src": "172:1531:13" - } - ], - "src": "0:1703:13" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/external/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 2065 - ] - }, - "id": 2066, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1939, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:13" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error\nTODO: remove once open zeppelin update to solc 0.5.0", - "fullyImplemented": true, - "id": 2065, - "linearizedBaseContracts": [ - 2065 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1971, - "nodeType": "Block", - "src": "326:314:13", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1948, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "541:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "546:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "541:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1954, - "nodeType": "IfStatement", - "src": "537:35:13", - "trueBody": { - "id": 1953, - "nodeType": "Block", - "src": "549:23:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "564:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1947, - "id": 1952, - "nodeType": "Return", - "src": "557:8:13" - } - ] - } - }, - { - "assignments": [ - 1956 - ], - "declarations": [ - { - "constant": false, - "id": 1956, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1971, - "src": "578:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "578:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1960, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1957, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "590:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1958, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1943, - "src": "594:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "590:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "578:17:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1962, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "609:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1963, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "613:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "609:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1965, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1943, - "src": "618:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "609:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1961, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "601:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "601:19:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1968, - "nodeType": "ExpressionStatement", - "src": "601:19:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 1969, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1956, - "src": "634:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1947, - "id": 1970, - "nodeType": "Return", - "src": "627:8:13" - } - ] - }, - "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 1972, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1941, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "272:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "272:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1943, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "283:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "283:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "271:22:13" - }, - "returnParameters": { - "id": 1947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1946, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1972, - "src": "317:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "317:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "316:9:13" - }, - "scope": 2065, - "src": "259:381:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1995, - "nodeType": "Block", - "src": "817:203:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1982, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "831:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1983, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "835:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "831:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1981, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "823:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "823:14:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1986, - "nodeType": "ExpressionStatement", - "src": "823:14:13" - }, - { - "assignments": [ - 1988 - ], - "declarations": [ - { - "constant": false, - "id": 1988, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1995, - "src": "901:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1992, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1989, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1974, - "src": "913:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1990, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "917:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "913:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "901:17:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 1993, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1988, - "src": "1014:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1980, - "id": 1994, - "nodeType": "Return", - "src": "1007:8:13" - } - ] - }, - "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 1996, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1974, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "763:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1973, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "763:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1976, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "774:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1975, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "762:22:13" - }, - "returnParameters": { - "id": 1980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1979, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1996, - "src": "808:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "808:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "807:9:13" - }, - "scope": 2065, - "src": "750:270:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "1200:64:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2006, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "1214:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2007, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1998, - "src": "1219:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1214:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2005, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1206:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1206:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "1206:15:13" - }, - { - "assignments": [ - 2012 - ], - "declarations": [ - { - "constant": false, - "id": 2012, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "1227:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2011, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1227:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2016, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2013, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1998, - "src": "1239:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2014, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "1243:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1239:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1227:17:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 2017, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2012, - "src": "1258:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2004, - "id": 2018, - "nodeType": "Return", - "src": "1251:8:13" - } - ] - }, - "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1146:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1146:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2000, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1157:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1145:22:13" - }, - "returnParameters": { - "id": 2004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2003, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "1191:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1191:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1190:9:13" - }, - "scope": 2065, - "src": "1133:131:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "1394:64:13", - "statements": [ - { - "assignments": [ - 2030 - ], - "declarations": [ - { - "constant": false, - "id": 2030, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "1400:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1400:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2034, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2031, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1412:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2032, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "1416:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1412:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1400:17:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2036, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1431:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2037, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1436:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1431:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2035, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1423:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1423:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2040, - "nodeType": "ExpressionStatement", - "src": "1423:15:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 2041, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1452:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2028, - "id": 2042, - "nodeType": "Return", - "src": "1445:8:13" - } - ] - }, - "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1340:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2021, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1340:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2024, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1351:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2023, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1351:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1339:22:13" - }, - "returnParameters": { - "id": 2028, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2027, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "1385:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2026, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1385:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1384:9:13" - }, - "scope": 2065, - "src": "1327:131:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2063, - "nodeType": "Block", - "src": "1657:44:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2054, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2048, - "src": "1671:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1676:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1671:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2053, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4369, - "src": "1663:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1663:15:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2058, - "nodeType": "ExpressionStatement", - "src": "1663:15:13" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2059, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "1691:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2060, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2048, - "src": "1695:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1691:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2052, - "id": 2062, - "nodeType": "Return", - "src": "1684:12:13" - } - ] - }, - "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 2064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1603:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1603:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2048, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1614:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2047, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1614:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1602:22:13" - }, - "returnParameters": { - "id": 2052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2051, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "1648:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2050, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1648:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1647:9:13" - }, - "scope": 2065, - "src": "1590:111:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 2066, - "src": "172:1531:13" - } - ], - "src": "0:1703:13" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.634Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SecuredTokenTransfer.json b/safe-contracts/build/contracts/SecuredTokenTransfer.json deleted file mode 100644 index f8ca2dad..00000000 --- a/safe-contracts/build/contracts/SecuredTokenTransfer.json +++ /dev/null @@ -1,785 +0,0 @@ -{ - "contractName": "SecuredTokenTransfer", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820b5c14d452c505cb1a0f73758b8195a89e0cb28893f97225a3c2af8a0a2a20ac10029", - "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820b5c14d452c505cb1a0f73758b8195a89e0cb28893f97225a3c2af8a0a2a20ac10029", - "sourceMap": "133:1051:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:10;;;;;;;", - "deployedSourceMap": "133:1051:10:-;;;;;", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title SecuredTokenTransfer - Secure token transfer\n/// @author Richard Meissner - \ncontract SecuredTokenTransfer {\n\n /// @dev Transfers a token and returns if it was a success\n /// @param token Token that should be transferred\n /// @param receiver Receiver to whom the token should be transferred\n /// @param amount The amount of tokens that should be transferred\n function transferToken (\n address token, \n address receiver,\n uint256 amount\n )\n internal\n returns (bool transferred)\n {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", receiver, amount);\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n switch returndatasize \n case 0 { transferred := success }\n case 0x20 { transferred := iszero(or(iszero(success), iszero(mload(ptr)))) }\n default { transferred := 0 }\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "exportedSymbols": { - "SecuredTokenTransfer": [ - 1864 - ] - }, - "id": 1865, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1841, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1864, - "linearizedBaseContracts": [ - 1864 - ], - "name": "SecuredTokenTransfer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1862, - "nodeType": "Block", - "src": "590:592:10", - "statements": [ - { - "assignments": [ - 1853 - ], - "declarations": [ - { - "constant": false, - "id": 1853, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "600:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "600:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1860, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 1857, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1845, - "src": "673:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1858, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "683:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "620:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "620:23:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "620:70:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "600:90:10" - }, - { - "externalReferences": [ - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1148:11:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1853, - "isOffset": false, - "isSlot": false, - "src": "857:4:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1853, - "isOffset": false, - "isSlot": false, - "src": "838:4:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1012:11:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1061:11:10", - "valueSize": 1 - } - }, - { - "token": { - "declaration": 1843, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - } - ], - "id": 1861, - "nodeType": "InlineAssembly", - "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:10" - } - ] - }, - "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1863, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1843, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "463:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "463:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1845, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "487:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "487:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1847, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "453:80:10" - }, - "returnParameters": { - "id": 1851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1850, - "name": "transferred", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "568:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1849, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "567:18:10" - }, - "scope": 1864, - "src": "430:752:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1865, - "src": "133:1051:10" - } - ], - "src": "0:1185:10" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol", - "exportedSymbols": { - "SecuredTokenTransfer": [ - 1864 - ] - }, - "id": 1865, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1841, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1864, - "linearizedBaseContracts": [ - 1864 - ], - "name": "SecuredTokenTransfer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1862, - "nodeType": "Block", - "src": "590:592:10", - "statements": [ - { - "assignments": [ - 1853 - ], - "declarations": [ - { - "constant": false, - "id": 1853, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1862, - "src": "600:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "600:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1860, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "644:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - "value": "transfer(address,uint256)" - }, - { - "argumentTypes": null, - "id": 1857, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1845, - "src": "673:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1858, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "683:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", - "typeString": "literal_string \"transfer(address,uint256)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "620:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "620:23:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "620:70:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "600:90:10" - }, - { - "externalReferences": [ - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1148:11:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1853, - "isOffset": false, - "isSlot": false, - "src": "857:4:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1853, - "isOffset": false, - "isSlot": false, - "src": "838:4:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1012:11:10", - "valueSize": 1 - } - }, - { - "transferred": { - "declaration": 1850, - "isOffset": false, - "isSlot": false, - "src": "1061:11:10", - "valueSize": 1 - } - }, - { - "token": { - "declaration": 1843, - "isOffset": false, - "isSlot": false, - "src": "824:5:10", - "valueSize": 1 - } - } - ], - "id": 1861, - "nodeType": "InlineAssembly", - "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", - "src": "764:418:10" - } - ] - }, - "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", - "id": 1863, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1848, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1843, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "463:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "463:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1845, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "487:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "487:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1847, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "453:80:10" - }, - "returnParameters": { - "id": 1851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1850, - "name": "transferred", - "nodeType": "VariableDeclaration", - "scope": 1863, - "src": "568:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1849, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "568:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "567:18:10" - }, - "scope": 1864, - "src": "430:752:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1865, - "src": "133:1051:10" - } - ], - "src": "0:1185:10" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.632Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json deleted file mode 100644 index 67e94e47..00000000 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "contractName": "SelfAuthorized", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820ff5397f172a61b5f66b3255abbc8f90a767eb61614e465366ff1ca1d632ba2260029", - "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820ff5397f172a61b5f66b3255abbc8f90a767eb61614e465366ff1ca1d632ba2260029", - "sourceMap": "152:166:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:11;;;;;;;", - "deployedSourceMap": "152:166:11:-;;;;;", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - \ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this), \"Method can only be called from this contract\");\n _;\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "exportedSymbols": { - "SelfAuthorized": [ - 1881 - ] - }, - "id": 1882, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1866, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1881, - "linearizedBaseContracts": [ - 1881 - ], - "name": "SelfAuthorized", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1879, - "nodeType": "Block", - "src": "204:112:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1869, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "222:3:11", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "222:10:11", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1872, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "244:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - ], - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "236:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "222:27:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "251:46:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - }, - "value": "Method can only be called from this contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - } - ], - "id": 1868, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "214:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "214:84:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1877, - "nodeType": "ExpressionStatement", - "src": "214:84:11" - }, - { - "id": 1878, - "nodeType": "PlaceholderStatement", - "src": "308:1:11" - } - ] - }, - "documentation": null, - "id": 1880, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1867, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:11" - }, - "src": "182:134:11", - "visibility": "internal" - } - ], - "scope": 1882, - "src": "152:166:11" - } - ], - "src": "0:319:11" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol", - "exportedSymbols": { - "SelfAuthorized": [ - 1881 - ] - }, - "id": 1882, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1866, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1881, - "linearizedBaseContracts": [ - 1881 - ], - "name": "SelfAuthorized", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1879, - "nodeType": "Block", - "src": "204:112:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1869, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "222:3:11", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "222:10:11", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1872, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "244:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SelfAuthorized_$1881", - "typeString": "contract SelfAuthorized" - } - ], - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "236:13:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "222:27:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "251:46:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - }, - "value": "Method can only be called from this contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", - "typeString": "literal_string \"Method can only be called from this contract\"" - } - ], - "id": 1868, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "214:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "214:84:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1877, - "nodeType": "ExpressionStatement", - "src": "214:84:11" - }, - { - "id": 1878, - "nodeType": "PlaceholderStatement", - "src": "308:1:11" - } - ] - }, - "documentation": null, - "id": 1880, - "name": "authorized", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1867, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:11" - }, - "src": "182:134:11", - "visibility": "internal" - } - ], - "scope": 1882, - "src": "152:166:11" - } - ], - "src": "0:319:11" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.633Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SignatureDecoder.json b/safe-contracts/build/contracts/SignatureDecoder.json deleted file mode 100644 index c26dba84..00000000 --- a/safe-contracts/build/contracts/SignatureDecoder.json +++ /dev/null @@ -1,1569 +0,0 @@ -{ - "contractName": "SignatureDecoder", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820790f25ef1bba4ced345bce3ea37fd4a87f75e699799d9dc3420ca1febef60c890029", - "deployedBytecode": "0x6080604052600080fdfea165627a7a72305820790f25ef1bba4ced345bce3ea37fd4a87f75e699799d9dc3420ca1febef60c890029", - "sourceMap": "226:1917:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;226:1917:12;;;;;;;", - "deployedSourceMap": "226:1917:12:-;;;;;", - "source": "pragma solidity ^0.5.0;\n\n\n/// @title SignatureDecoder - Decodes signatures that a encoded as bytes\n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureDecoder {\n \n /// @dev Recovers address who signed the message \n /// @param messageHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 messageHash, \n bytes memory messageSignature,\n uint256 pos\n )\n internal\n pure\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(messageHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`. \n /// @notice Make sure to peform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n /// @param pos which signature to read. A prior bounds check of this parameter should be performed, to avoid out of bounds access\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes memory signatures, uint256 pos)\n internal\n pure\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "exportedSymbols": { - "SignatureDecoder": [ - 1937 - ] - }, - "id": 1938, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1883, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1937, - "linearizedBaseContracts": [ - 1937 - ], - "name": "SignatureDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "663:169:12", - "statements": [ - { - "assignments": [ - 1895 - ], - "declarations": [ - { - "constant": false, - "id": 1895, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "673:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1894, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "673:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1896, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "673:7:12" - }, - { - "assignments": [ - 1898 - ], - "declarations": [ - { - "constant": false, - "id": 1898, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "690:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1897, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "690:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "690:9:12" - }, - { - "assignments": [ - 1901 - ], - "declarations": [ - { - "constant": false, - "id": 1901, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "709:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1900, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "709:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1902, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "709:9:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1903, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "729:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1904, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "732:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1905, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "735:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1906, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "728:9:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1908, - "name": "messageSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "755:16:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1909, - "name": "pos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "773:3:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1907, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "740:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "740:37:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "728:49:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1912, - "nodeType": "ExpressionStatement", - "src": "728:49:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1914, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "804:11:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1915, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "817:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1916, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "820:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "823:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1913, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "794:9:12", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "794:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1893, - "id": 1919, - "nodeType": "Return", - "src": "787:38:12" - } - ] - }, - "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recoverKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1885, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "515:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1884, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "515:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1887, - "name": "messageSignature", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "545:29:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1886, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "545:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1889, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "584:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1888, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "584:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "505:96:12" - }, - "returnParameters": { - "id": 1893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1892, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "649:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1891, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "649:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "648:9:12" - }, - "scope": 1937, - "src": "485:347:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1935, - "nodeType": "Block", - "src": "1364:777:12", - "statements": [ - { - "externalReferences": [ - { - "r": { - "declaration": 1930, - "isOffset": false, - "isSlot": false, - "src": "1666:1:12", - "valueSize": 1 - } - }, - { - "pos": { - "declaration": 1925, - "isOffset": false, - "isSlot": false, - "src": "1649:3:12", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 1928, - "isOffset": false, - "isSlot": false, - "src": "2062:1:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1932, - "isOffset": false, - "isSlot": false, - "src": "1731:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "1681:10:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "2081:10:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "1746:10:12", - "valueSize": 1 - } - } - ], - "id": 1934, - "nodeType": "InlineAssembly", - "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1596:545:12" - } - ] - }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`. \n @notice Make sure to peform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n @param pos which signature to read. A prior bounds check of this parameter should be performed, to avoid out of bounds access\n @param signatures concatenated rsv signatures", - "id": 1936, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "signatureSplit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1244:23:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1922, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1244:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1925, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1269:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1924, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1269:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1243:38:12" - }, - "returnParameters": { - "id": 1933, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1928, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1329:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1927, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1329:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1930, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1338:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1338:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1932, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1349:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1931, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1349:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:31:12" - }, - "scope": 1937, - "src": "1220:921:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1938, - "src": "226:1917:12" - } - ], - "src": "0:2144:12" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "exportedSymbols": { - "SignatureDecoder": [ - 1937 - ] - }, - "id": 1938, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1883, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:12" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title SignatureDecoder - Decodes signatures that a encoded as bytes\n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1937, - "linearizedBaseContracts": [ - 1937 - ], - "name": "SignatureDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "663:169:12", - "statements": [ - { - "assignments": [ - 1895 - ], - "declarations": [ - { - "constant": false, - "id": 1895, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "673:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1894, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "673:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1896, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "673:7:12" - }, - { - "assignments": [ - 1898 - ], - "declarations": [ - { - "constant": false, - "id": 1898, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "690:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1897, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "690:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "690:9:12" - }, - { - "assignments": [ - 1901 - ], - "declarations": [ - { - "constant": false, - "id": 1901, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "709:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1900, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "709:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1902, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "709:9:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1903, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "729:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1904, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "732:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1905, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "735:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1906, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "728:9:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1908, - "name": "messageSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "755:16:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1909, - "name": "pos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1889, - "src": "773:3:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1907, - "name": "signatureSplit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "740:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" - } - }, - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "740:37:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(uint8,bytes32,bytes32)" - } - }, - "src": "728:49:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1912, - "nodeType": "ExpressionStatement", - "src": "728:49:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1914, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "804:11:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1915, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "817:1:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1916, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "820:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "823:1:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1913, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4358, - "src": "794:9:12", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "794:31:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1893, - "id": 1919, - "nodeType": "Return", - "src": "787:38:12" - } - ] - }, - "documentation": "@dev Recovers address who signed the message \n @param messageHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recoverKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1885, - "name": "messageHash", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "515:19:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1884, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "515:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1887, - "name": "messageSignature", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "545:29:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1886, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "545:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1889, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "584:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1888, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "584:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "505:96:12" - }, - "returnParameters": { - "id": 1893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1892, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "649:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1891, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "649:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "648:9:12" - }, - "scope": 1937, - "src": "485:347:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1935, - "nodeType": "Block", - "src": "1364:777:12", - "statements": [ - { - "externalReferences": [ - { - "r": { - "declaration": 1930, - "isOffset": false, - "isSlot": false, - "src": "1666:1:12", - "valueSize": 1 - } - }, - { - "pos": { - "declaration": 1925, - "isOffset": false, - "isSlot": false, - "src": "1649:3:12", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 1928, - "isOffset": false, - "isSlot": false, - "src": "2062:1:12", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 1932, - "isOffset": false, - "isSlot": false, - "src": "1731:1:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "1681:10:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "2081:10:12", - "valueSize": 1 - } - }, - { - "signatures": { - "declaration": 1923, - "isOffset": false, - "isSlot": false, - "src": "1746:10:12", - "valueSize": 1 - } - } - ], - "id": 1934, - "nodeType": "InlineAssembly", - "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1596:545:12" - } - ] - }, - "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`. \n @notice Make sure to peform a bounds check for @param pos, to avoid out of bounds access on @param signatures\n @param pos which signature to read. A prior bounds check of this parameter should be performed, to avoid out of bounds access\n @param signatures concatenated rsv signatures", - "id": 1936, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "signatureSplit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1244:23:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1922, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1244:5:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1925, - "name": "pos", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1269:11:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1924, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1269:7:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1243:38:12" - }, - "returnParameters": { - "id": 1933, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1928, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1329:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1927, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1329:5:12", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1930, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1338:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1338:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1932, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "1349:9:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1931, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1349:7:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1328:31:12" - }, - "scope": 1937, - "src": "1220:921:12", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1938, - "src": "226:1917:12" - } - ], - "src": "0:2144:12" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.633Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json deleted file mode 100644 index 49def0ed..00000000 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ /dev/null @@ -1,7366 +0,0 @@ -{ - "contractName": "SocialRecoveryModule", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "threshold", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "isFriend", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "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": "", - "type": "bytes32" - }, - { - "name": "", - "type": "address" - } - ], - "name": "isConfirmed", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "friends", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "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": "_friends", - "type": "address[]" - }, - { - "name": "_threshold", - "type": "uint256" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "dataHash", - "type": "bytes32" - } - ], - "name": "confirmTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "recoverAccess", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "dataHash", - "type": "bytes32" - } - ], - "name": "isConfirmedByRequiredFriends", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "name": "getDataHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611692806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ca89d0d1161008c578063b79ffaff11610066578063b79ffaff14610503578063ce14682814610569578063e52cb36a146105d7578063ffa1ad741461061d576100ea565b80639ca89d0d1461036b578063a3f4df7e146103b1578063ae68b05614610434576100ea565b806368125a1b116100c857806368125a1b1461021957806377231eaa1461027557806379716e43146102f95780637de7edef14610327576100ea565b806342cde4e8146100ef578063481c6a751461010d5780634ab8842714610157575b600080fd5b6100f76106a0565b6040518082815260200191505060405180910390f35b6101156106a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102176004803603604081101561016d57600080fd5b810190808035906020019064010000000081111561018a57600080fd5b82018360208201111561019c57600080fd5b803590602001918460208302840111640100000000831117156101be57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506106cc565b005b61025b6004803603602081101561022f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099b565b604051808215151515815260200191505060405180910390f35b6102f76004803603606081101561028b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bb565b005b6103256004803603602081101561030f57600080fd5b8101908080359060200190929190505050610eb2565b005b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611054565b005b6103976004803603602081101561038157600080fd5b81019080803590602001909291905050506111c3565b604051808215151515815260200191505060405180910390f35b6103b96112aa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f95780820151818401526020810190506103de565b50505050905090810190601f1680156104265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104ed6004803603602081101561044a57600080fd5b810190808035906020019064010000000081111561046757600080fd5b82018360208201111561047957600080fd5b8035906020019184600183028401116401000000008311171561049b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506112e3565b6040518082815260200191505060405180910390f35b61054f6004803603604081101561051957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b604051808215151515815260200191505060405180910390f35b6105956004803603602081101561057f57600080fd5b8101908080359060200190929190505050611323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610603600480360360208110156105ed57600080fd5b810190808035906020019092919050505061135f565b604051808215151515815260200191505060405180910390f35b61062561137f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8151811115610726576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115d26025913960400191505060405180910390fd5b600281101561079d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107a56113b8565b60008090505b82518110156109785760008382815181106107c257fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806115b16021913960400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505080806001019150506107ab565b50816003908051906020019061098f9291906114bf565b50806002819055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115f76025913960400191505060405180910390fd5b6060838383604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000610b8e826112e3565b90506005600082815260200190815260200160002060009054906101000a900460ff1615610c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c2d816111c3565b610c82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061161c6025913960400191505060405180910390fd5b60016005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610d6f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610daf578082015181840152602081019050610d94565b50505050905090810190601f168015610ddc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d6020811015610e2857600080fd5b8101908080519060200190929190505050610eab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115f76025913960400191505060405180910390fd5b6005600082815260200190815260200160002060009054906101000a900460ff1615610fe8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b60016006600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116416026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061158d6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561129e57600660008581526020019081526020016000206000600383815481106111fb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561127c5781806001019250505b600254821415611291576001925050506112a5565b80806001019150506111cc565b5060009150505b919050565b6040518060400160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b600081805190602001209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6003818154811061133057fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611538579160200282015b828111156115375782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906114df565b5b5090506115459190611549565b5090565b61158991905b8082111561158557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161154f565b5090565b9056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644475706c696361746520667269656e6420616464726573732070726f76696465645468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e744d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e645265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058203e6790094fc7e6d4f25049c4ec9d049c988adf13e9edd13083b4932e508f5f660029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ca89d0d1161008c578063b79ffaff11610066578063b79ffaff14610503578063ce14682814610569578063e52cb36a146105d7578063ffa1ad741461061d576100ea565b80639ca89d0d1461036b578063a3f4df7e146103b1578063ae68b05614610434576100ea565b806368125a1b116100c857806368125a1b1461021957806377231eaa1461027557806379716e43146102f95780637de7edef14610327576100ea565b806342cde4e8146100ef578063481c6a751461010d5780634ab8842714610157575b600080fd5b6100f76106a0565b6040518082815260200191505060405180910390f35b6101156106a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102176004803603604081101561016d57600080fd5b810190808035906020019064010000000081111561018a57600080fd5b82018360208201111561019c57600080fd5b803590602001918460208302840111640100000000831117156101be57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506106cc565b005b61025b6004803603602081101561022f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099b565b604051808215151515815260200191505060405180910390f35b6102f76004803603606081101561028b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bb565b005b6103256004803603602081101561030f57600080fd5b8101908080359060200190929190505050610eb2565b005b6103696004803603602081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611054565b005b6103976004803603602081101561038157600080fd5b81019080803590602001909291905050506111c3565b604051808215151515815260200191505060405180910390f35b6103b96112aa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f95780820151818401526020810190506103de565b50505050905090810190601f1680156104265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104ed6004803603602081101561044a57600080fd5b810190808035906020019064010000000081111561046757600080fd5b82018360208201111561047957600080fd5b8035906020019184600183028401116401000000008311171561049b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506112e3565b6040518082815260200191505060405180910390f35b61054f6004803603604081101561051957600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b604051808215151515815260200191505060405180910390f35b6105956004803603602081101561057f57600080fd5b8101908080359060200190929190505050611323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610603600480360360208110156105ed57600080fd5b810190808035906020019092919050505061135f565b604051808215151515815260200191505060405180910390f35b61062561137f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8151811115610726576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115d26025913960400191505060405180910390fd5b600281101561079d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107a56113b8565b60008090505b82518110156109785760008382815181106107c257fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806115b16021913960400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505080806001019150506107ab565b50816003908051906020019061098f9291906114bf565b50806002819055505050565b60046020528060005260406000206000915054906101000a900460ff1681565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115f76025913960400191505060405180910390fd5b6060838383604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000610b8e826112e3565b90506005600082815260200190815260200160002060009054906101000a900460ff1615610c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c2d816111c3565b610c82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061161c6025913960400191505060405180910390fd5b60016005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610d6f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610daf578082015181840152602081019050610d94565b50505050905090810190601f168015610ddc5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610dfe57600080fd5b505af1158015610e12573d6000803e3d6000fd5b505050506040513d6020811015610e2857600080fd5b8101908080519060200190929190505050610eab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115f76025913960400191505060405180910390fd5b6005600082815260200190815260200160002060009054906101000a900460ff1615610fe8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b60016006600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806116416026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061158d6024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561129e57600660008581526020019081526020016000206000600383815481106111fb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561127c5781806001019250505b600254821415611291576001925050506112a5565b80806001019150506111cc565b5060009150505b919050565b6040518060400160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b600081805190602001209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6003818154811061133057fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611538579160200282015b828111156115375782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906114df565b5b5090506115459190611549565b5090565b61158991905b8082111561158557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161154f565b5090565b9056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644475706c696361746520667269656e6420616464726573732070726f76696465645468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e744d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e645265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058203e6790094fc7e6d4f25049c4ec9d049c988adf13e9edd13083b4932e508f5f660029", - "sourceMap": "328:3683:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:3683:19;;;;;;;", - "deployedSourceMap": "328:3683:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:3683:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;270:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1240:656:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1240:656:19;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1240:656:19;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1240:656:19;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1240:656:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:656:19;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;607:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;607:41:19;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2552:625;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2552:625:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2009:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2009:210:19;;;;;;;;;;;;;;;;;:::i;:::-;;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;3338:405:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3338:405:19;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;375:54;;;:::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;375:54:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3872:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3872:137:19;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3872:137:19;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3872:137:19;;;;;;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;3872:137:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;3872:137:19;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;851:65;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;851:65:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;512:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;512:24:19;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;716:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;716:43:19;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;435: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;435:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;482:24;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;1240:656:19:-;1353:8;:15;1339:10;:29;;1331:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1442:1;1428:10;:15;;1420:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1485:12;:10;:12::i;:::-;1544:9;1556:1;1544:13;;1539:291;1563:8;:15;1559:1;:19;1539:291;;;1599:14;1616:8;1625:1;1616:11;;;;;;;;;;;;;;1599:28;;1667:1;1649:20;;:6;:20;;;;1641:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1728:8;:16;1737:6;1728:16;;;;;;;;;;;;;;;;;;;;;;;;;1727:17;1719:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1815:4;1796:8;:16;1805:6;1796:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1539:291;1580:3;;;;;;;1539:291;;;;1849:8;1839:7;:18;;;;;;;;;;;;:::i;:::-;;1879:10;1867:9;:22;;;;1240:656;;:::o;607:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2552:625::-;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2678:17;2760:9;2771:8;2781;2698:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2698:92:19;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2698:92:19;2678:112;;2800:16;2819:17;2831:4;2819:11;:17::i;:::-;2800:36;;2855:10;:20;2866:8;2855:20;;;;;;;;;;;;;;;;;;;;;2854:21;2846:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2923:38;2952:8;2923:28;:38::i;:::-;2915:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3036:4;3013:10;:20;3024:8;3013:20;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3058:7;;;;;;;;;;;:33;;;3100:7;;;;;;;;;;;3110:1;3113:4;3119:19;3058:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3058:81:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3058:81:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3058:81:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3058:81:19;;;;;;;;;;;;;;;;3050:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:1;;2552:625;;;:::o;2009:210::-;963:8;:20;972:10;963:20;;;;;;;;;;;;;;;;;;;;;;;;;955:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2112:10;:20;2123:8;2112:20;;;;;;;;;;;;;;;;;;;;;2111:21;2103:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:4;2172:11;:21;2184:8;2172:21;;;;;;;;;;;:33;2194:10;2172:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;2009:210;:::o;626:257:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o;3338:405:19:-;3439:4;3459:25;3499:9;3511:1;3499:13;;3494:221;3518:7;:14;;;;3514:1;:18;3494:221;;;3557:11;:21;3569:8;3557:21;;;;;;;;;;;:33;3579:7;3587:1;3579:10;;;;;;;;;;;;;;;;;;;;;;;;;3557:33;;;;;;;;;;;;;;;;;;;;;;;;;3553:74;;;3608:19;;;;;;;3553:74;3666:9;;3645:17;:30;3641:63;;;3700:4;3693:11;;;;;;3641:63;3534:3;;;;;;;3494:221;;;;3731:5;3724:12;;;3338:405;;;;:::o;375:54::-;;;;;;;;;;;;;;;;;;;:::o;3872:137::-;3957:7;3997:4;3987:15;;;;;;3980:22;;3872:137;;;:::o;851:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;512:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;716:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;435:40::-;;;;;;;;;;;;;;;;;;;:::o;442:309:4:-;664:1;636:30;;644:7;;;;;;;;;;;636:30;;;628:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:10;709:7;;:35;;;;;;;;;;;;;;;;;;442:309::o;328:3683:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.1.0\";\n\n uint256 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender], \"Method can only be called by a friend\");\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] memory _friends, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != address(0), \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash], \"Recovery already executed\");\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes memory data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "exportedSymbols": { - "SocialRecoveryModule": [ - 2660 - ] - }, - "id": 2661, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2395, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1021, - "src": "24:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2397, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1331, - "src": "53:35:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2398, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1797, - "src": "89:34:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2399, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1804, - "src": "124:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2400, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "361:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2401, - "nodeType": "InheritanceSpecifier", - "src": "361:6:19" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2660, - "linearizedBaseContracts": [ - 2660, - 1020, - 1839, - 1881 - ], - "name": "SocialRecoveryModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2404, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "375:54:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "375:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "405:24:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", - "typeString": "literal_string \"Social Recovery Module\"" - }, - "value": "Social Recovery Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2407, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "435:40:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2405, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "435:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:7:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2409, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "482:24:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "482:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2412, - "name": "friends", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "512:24:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2410, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2411, - "length": null, - "nodeType": "ArrayTypeName", - "src": "512:9:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2416, - "name": "isFriend", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "607:41:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2415, - "keyType": { - "id": 2413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "607:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2414, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "627:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2420, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "716:43:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2419, - "keyType": { - "id": 2417, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "725:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "716:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "736:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2426, - "name": "isConfirmed", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "851:65:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "typeName": { - "id": 2425, - "keyType": { - "id": 2421, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "860:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "851:46:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "valueType": { - "id": 2424, - "keyType": { - "id": 2422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "871:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2423, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "891:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "945:98:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2429, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "963:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2432, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2430, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "972:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "972:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "963:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - }, - "value": "Method can only be called by a friend" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - } - ], - "id": 2428, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "955:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "955:70:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2435, - "nodeType": "ExpressionStatement", - "src": "955:70:19" - }, - { - "id": 2436, - "nodeType": "PlaceholderStatement", - "src": "1035:1:19" - } - ] - }, - "documentation": null, - "id": 2438, - "name": "onlyFriend", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [], - "src": "942:2:19" - }, - "src": "923:120:19", - "visibility": "internal" - }, - { - "body": { - "id": 2514, - "nodeType": "Block", - "src": "1321:575:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2447, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1339:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2448, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1353:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1353:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1339:29:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1370:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - }, - "value": "Threshold cannot exceed friends count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - } - ], - "id": 2446, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1331:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1331:79:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2453, - "nodeType": "ExpressionStatement", - "src": "1331:79:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2455, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1428:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2456, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1442:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1428:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1445:29:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - }, - "value": "At least 2 friends required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - } - ], - "id": 2454, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1420:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1420:55:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2460, - "nodeType": "ExpressionStatement", - "src": "1420:55:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2461, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1485:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1485:12:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2463, - "nodeType": "ExpressionStatement", - "src": "1485:12:19" - }, - { - "body": { - "id": 2504, - "nodeType": "Block", - "src": "1585:245:19", - "statements": [ - { - "assignments": [ - 2476 - ], - "declarations": [ - { - "constant": false, - "id": 2476, - "name": "friend", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "1599:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1599:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2480, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2477, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1616:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2479, - "indexExpression": { - "argumentTypes": null, - "id": 2478, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1625:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1616:11:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1599:28:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2482, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1649:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1667:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1659:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1659:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1649:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1671:33:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - }, - "value": "Invalid friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - } - ], - "id": 2481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1641:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1641:64:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2489, - "nodeType": "ExpressionStatement", - "src": "1641:64:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1727:17:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2491, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1728:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2493, - "indexExpression": { - "argumentTypes": null, - "id": 2492, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1737:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1728:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1746:35:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - }, - "value": "Duplicate friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - } - ], - "id": 2490, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1719:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1719:63:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2497, - "nodeType": "ExpressionStatement", - "src": "1719:63:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2498, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1796:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2500, - "indexExpression": { - "argumentTypes": null, - "id": 2499, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1805:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1796:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1815:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1796:23:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2503, - "nodeType": "ExpressionStatement", - "src": "1796:23:19" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2468, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1559:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2469, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1563:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1563:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1559:19:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2505, - "initializationExpression": { - "assignments": [ - 2465 - ], - "declarations": [ - { - "constant": false, - "id": 2465, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "1544:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1544:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2467, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1556:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1544:13:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1580:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2472, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1580:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2474, - "nodeType": "ExpressionStatement", - "src": "1580:3:19" - }, - "nodeType": "ForStatement", - "src": "1539:291:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2506, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1839:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2507, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1849:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "1839:18:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2509, - "nodeType": "ExpressionStatement", - "src": "1839:18:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2510, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1867:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2511, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1879:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1867:22:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2513, - "nodeType": "ExpressionStatement", - "src": "1867:22:19" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2515, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2441, - "name": "_friends", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "1255:25:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1255:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2440, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1255:9:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2443, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "1282:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2442, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1282:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:47:19" - }, - "returnParameters": { - "id": 2445, - "nodeType": "ParameterList", - "parameters": [], - "src": "1321:0:19" - }, - "scope": 2660, - "src": "1240:656:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2539, - "nodeType": "Block", - "src": "2093:126:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2111:21:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2523, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "2112:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2525, - "indexExpression": { - "argumentTypes": null, - "id": 2524, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "2123:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2112:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2134:27:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2522, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2103:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2103:59:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2529, - "nodeType": "ExpressionStatement", - "src": "2103:59:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2530, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2172:11:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2534, - "indexExpression": { - "argumentTypes": null, - "id": 2531, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "2184:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2172:21:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2535, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2532, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2194:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2194:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2172:33:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2208:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2172:40:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2538, - "nodeType": "ExpressionStatement", - "src": "2172:40:19" - } - ] - }, - "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2540, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2520, - "modifierName": { - "argumentTypes": null, - "id": 2519, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2438, - "src": "2078:10:19", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2078:10:19" - } - ], - "name": "confirmTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2517, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "2037:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2516, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2037:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2036:18:19" - }, - "returnParameters": { - "id": 2521, - "nodeType": "ParameterList", - "parameters": [], - "src": "2093:0:19" - }, - "scope": 2660, - "src": "2009:210:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2603, - "nodeType": "Block", - "src": "2668:509:19", - "statements": [ - { - "assignments": [ - 2552 - ], - "declarations": [ - { - "constant": false, - "id": 2552, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "2678:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2551, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2678:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2722:36:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - "value": "swapOwner(address,address,address)" - }, - { - "argumentTypes": null, - "id": 2556, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "2760:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2557, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "2771:8:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2558, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2546, - "src": "2781:8:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2553, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2698:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2698:23:19", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2698:92:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2678:112:19" - }, - { - "assignments": [ - 2562 - ], - "declarations": [ - { - "constant": false, - "id": 2562, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "2800:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2561, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2800:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2566, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2564, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2552, - "src": "2831:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2563, - "name": "getDataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2659, - "src": "2819:11:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2819:17:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2800:36:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2854:21:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "2855:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "2866:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2855:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2877:27:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2567, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2846:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2846:59:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "2846:59:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2577, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "2952:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2576, - "name": "isConfirmedByRequiredFriends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2647, - "src": "2923:28:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 2578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2923:38:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2963:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - }, - "value": "Recovery has not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2915:7:19", - "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": "2915:88:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2581, - "nodeType": "ExpressionStatement", - "src": "2915:88:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2582, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3013:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2584, - "indexExpression": { - "argumentTypes": null, - "id": 2583, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "3024:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3013:20:19", - "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": "3036:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3013:27:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "3013:27:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2592, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3100:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3092:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3092:16:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3110:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2595, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2552, - "src": "3113:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2596, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "3119:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "3119:14:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3119:19:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2589, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3058:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "3058:33:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3058:81:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3141:28:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - }, - "value": "Could not execute recovery" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - } - ], - "id": 2588, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3050:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3050:120:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2602, - "nodeType": "ExpressionStatement", - "src": "3050:120:19" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2604, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2549, - "modifierName": { - "argumentTypes": null, - "id": 2548, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2438, - "src": "2653:10:19", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2653:10:19" - } - ], - "name": "recoverAccess", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2542, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2575:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2575:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2544, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2594:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2594:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2546, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2612:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2612:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2574:55:19" - }, - "returnParameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [], - "src": "2668:0:19" - }, - "scope": 2660, - "src": "2552:625:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2646, - "nodeType": "Block", - "src": "3449:294:19", - "statements": [ - { - "assignments": [ - 2612 - ], - "declarations": [ - { - "constant": false, - "id": 2612, - "name": "confirmationCount", - "nodeType": "VariableDeclaration", - "scope": 2646, - "src": "3459:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2611, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3459:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2613, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3459:25:19" - }, - { - "body": { - "id": 2642, - "nodeType": "Block", - "src": "3539:176:19", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2625, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "3557:11:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2627, - "indexExpression": { - "argumentTypes": null, - "id": 2626, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "3569:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3557:21:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2631, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2628, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "3579:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2630, - "indexExpression": { - "argumentTypes": null, - "id": 2629, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3587:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3579:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3557:33:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2635, - "nodeType": "IfStatement", - "src": "3553:74:19", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3608:19:19", - "subExpression": { - "argumentTypes": null, - "id": 2632, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "3608:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2634, - "nodeType": "ExpressionStatement", - "src": "3608:19:19" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2636, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "3645:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2637, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "3666:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3645:30:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2641, - "nodeType": "IfStatement", - "src": "3641:63:19", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3700:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2610, - "id": 2640, - "nodeType": "Return", - "src": "3693:11:19" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2618, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3514:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2619, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "3518:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3518:14:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3514:18:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2643, - "initializationExpression": { - "assignments": [ - 2615 - ], - "declarations": [ - { - "constant": false, - "id": 2615, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2643, - "src": "3499:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2614, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3499:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2617, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3511:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3499:13:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3534:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2622, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3534:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2624, - "nodeType": "ExpressionStatement", - "src": "3534:3:19" - }, - "nodeType": "ForStatement", - "src": "3494:221:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3731:5:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2610, - "id": 2645, - "nodeType": "Return", - "src": "3724:12:19" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2647, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isConfirmedByRequiredFriends", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2606, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2647, - "src": "3376:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2605, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3376:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3375:18:19" - }, - "returnParameters": { - "id": 2610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2609, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2647, - "src": "3439:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2608, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3439:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3438:6:19" - }, - "scope": 2660, - "src": "3338:405:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2658, - "nodeType": "Block", - "src": "3970:39:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2655, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2649, - "src": "3997:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2654, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3987:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3987:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2653, - "id": 2657, - "nodeType": "Return", - "src": "3980:22:19" - } - ] - }, - "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2659, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDataHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2649, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2659, - "src": "3893:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2648, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3893:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3892:19:19" - }, - "returnParameters": { - "id": 2653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2652, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2659, - "src": "3957:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2651, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3957:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3956:9:19" - }, - "scope": 2660, - "src": "3872:137:19", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2661, - "src": "328:3683:19" - } - ], - "src": "0:4012:19" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", - "exportedSymbols": { - "SocialRecoveryModule": [ - 2660 - ] - }, - "id": 2661, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2395, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1021, - "src": "24:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2397, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1331, - "src": "53:35:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2398, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1797, - "src": "89:34:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2399, - "nodeType": "ImportDirective", - "scope": 2661, - "sourceUnit": 1804, - "src": "124:28:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2400, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "361:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2401, - "nodeType": "InheritanceSpecifier", - "src": "361:6:19" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 2660, - "linearizedBaseContracts": [ - 2660, - 1020, - 1839, - 1881 - ], - "name": "SocialRecoveryModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2404, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "375:54:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "375:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "405:24:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", - "typeString": "literal_string \"Social Recovery Module\"" - }, - "value": "Social Recovery Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2407, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "435:40:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2405, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "435:6:19", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:7:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2409, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "482:24:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "482:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2412, - "name": "friends", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "512:24:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2410, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2411, - "length": null, - "nodeType": "ArrayTypeName", - "src": "512:9:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2416, - "name": "isFriend", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "607:41:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2415, - "keyType": { - "id": 2413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "607:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2414, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "627:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2420, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "716:43:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2419, - "keyType": { - "id": 2417, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "725:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "716:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "736:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2426, - "name": "isConfirmed", - "nodeType": "VariableDeclaration", - "scope": 2660, - "src": "851:65:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "typeName": { - "id": 2425, - "keyType": { - "id": 2421, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "860:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "851:46:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - }, - "valueType": { - "id": 2424, - "keyType": { - "id": 2422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "871:25:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2423, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "891:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "945:98:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2429, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "963:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2432, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2430, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "972:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "972:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "963:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "985:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - }, - "value": "Method can only be called by a friend" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", - "typeString": "literal_string \"Method can only be called by a friend\"" - } - ], - "id": 2428, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "955:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "955:70:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2435, - "nodeType": "ExpressionStatement", - "src": "955:70:19" - }, - { - "id": 2436, - "nodeType": "PlaceholderStatement", - "src": "1035:1:19" - } - ] - }, - "documentation": null, - "id": 2438, - "name": "onlyFriend", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [], - "src": "942:2:19" - }, - "src": "923:120:19", - "visibility": "internal" - }, - { - "body": { - "id": 2514, - "nodeType": "Block", - "src": "1321:575:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2447, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1339:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2448, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1353:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1353:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1339:29:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1370:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - }, - "value": "Threshold cannot exceed friends count" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", - "typeString": "literal_string \"Threshold cannot exceed friends count\"" - } - ], - "id": 2446, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1331:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1331:79:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2453, - "nodeType": "ExpressionStatement", - "src": "1331:79:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2455, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1428:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 2456, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1442:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1428:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1445:29:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - }, - "value": "At least 2 friends required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", - "typeString": "literal_string \"At least 2 friends required\"" - } - ], - "id": 2454, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1420:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1420:55:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2460, - "nodeType": "ExpressionStatement", - "src": "1420:55:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2461, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1485:10:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1485:12:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2463, - "nodeType": "ExpressionStatement", - "src": "1485:12:19" - }, - { - "body": { - "id": 2504, - "nodeType": "Block", - "src": "1585:245:19", - "statements": [ - { - "assignments": [ - 2476 - ], - "declarations": [ - { - "constant": false, - "id": 2476, - "name": "friend", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "1599:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1599:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2480, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2477, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1616:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2479, - "indexExpression": { - "argumentTypes": null, - "id": 2478, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1625:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1616:11:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1599:28:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2482, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1649:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1667:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1659:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1659:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1649:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1671:33:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - }, - "value": "Invalid friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", - "typeString": "literal_string \"Invalid friend address provided\"" - } - ], - "id": 2481, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1641:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1641:64:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2489, - "nodeType": "ExpressionStatement", - "src": "1641:64:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1727:17:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2491, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1728:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2493, - "indexExpression": { - "argumentTypes": null, - "id": 2492, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1737:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1728:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1746:35:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - }, - "value": "Duplicate friend address provided" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", - "typeString": "literal_string \"Duplicate friend address provided\"" - } - ], - "id": 2490, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1719:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1719:63:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2497, - "nodeType": "ExpressionStatement", - "src": "1719:63:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2498, - "name": "isFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2416, - "src": "1796:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2500, - "indexExpression": { - "argumentTypes": null, - "id": 2499, - "name": "friend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2476, - "src": "1805:6:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1796:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1815:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1796:23:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2503, - "nodeType": "ExpressionStatement", - "src": "1796:23:19" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2468, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1559:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2469, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1563:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1563:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1559:19:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2505, - "initializationExpression": { - "assignments": [ - 2465 - ], - "declarations": [ - { - "constant": false, - "id": 2465, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "1544:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1544:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2467, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1556:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1544:13:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1580:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2472, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "1580:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2474, - "nodeType": "ExpressionStatement", - "src": "1580:3:19" - }, - "nodeType": "ForStatement", - "src": "1539:291:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2506, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "1839:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2507, - "name": "_friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2441, - "src": "1849:8:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "1839:18:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2509, - "nodeType": "ExpressionStatement", - "src": "1839:18:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2510, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1867:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2511, - "name": "_threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "1879:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1867:22:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2513, - "nodeType": "ExpressionStatement", - "src": "1867:22:19" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 2515, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2444, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2441, - "name": "_friends", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "1255:25:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1255:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2440, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1255:9:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2443, - "name": "_threshold", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "1282:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2442, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1282:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1254:47:19" - }, - "returnParameters": { - "id": 2445, - "nodeType": "ParameterList", - "parameters": [], - "src": "1321:0:19" - }, - "scope": 2660, - "src": "1240:656:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2539, - "nodeType": "Block", - "src": "2093:126:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2111:21:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2523, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "2112:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2525, - "indexExpression": { - "argumentTypes": null, - "id": 2524, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "2123:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2112:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2134:27:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2522, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2103:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2103:59:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2529, - "nodeType": "ExpressionStatement", - "src": "2103:59:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2530, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2172:11:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2534, - "indexExpression": { - "argumentTypes": null, - "id": 2531, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "2184:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2172:21:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2535, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2532, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2194:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2194:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2172:33:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2208:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2172:40:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2538, - "nodeType": "ExpressionStatement", - "src": "2172:40:19" - } - ] - }, - "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2540, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2520, - "modifierName": { - "argumentTypes": null, - "id": 2519, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2438, - "src": "2078:10:19", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2078:10:19" - } - ], - "name": "confirmTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2517, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "2037:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2516, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2037:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2036:18:19" - }, - "returnParameters": { - "id": 2521, - "nodeType": "ParameterList", - "parameters": [], - "src": "2093:0:19" - }, - "scope": 2660, - "src": "2009:210:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2603, - "nodeType": "Block", - "src": "2668:509:19", - "statements": [ - { - "assignments": [ - 2552 - ], - "declarations": [ - { - "constant": false, - "id": 2552, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "2678:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2551, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2678:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2555, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2722:36:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - "value": "swapOwner(address,address,address)" - }, - { - "argumentTypes": null, - "id": 2556, - "name": "prevOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "2760:9:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2557, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "2771:8:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2558, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2546, - "src": "2781:8:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", - "typeString": "literal_string \"swapOwner(address,address,address)\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2553, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "2698:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2698:23:19", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (string memory) pure returns (bytes memory)" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2698:92:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2678:112:19" - }, - { - "assignments": [ - 2562 - ], - "declarations": [ - { - "constant": false, - "id": 2562, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2603, - "src": "2800:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2561, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2800:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2566, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2564, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2552, - "src": "2831:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2563, - "name": "getDataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2659, - "src": "2819:11:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2819:17:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2800:36:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2854:21:19", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "2855:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "2866:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2855:20:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2877:27:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - }, - "value": "Recovery already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", - "typeString": "literal_string \"Recovery already executed\"" - } - ], - "id": 2567, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2846:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2846:59:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "2846:59:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2577, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "2952:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2576, - "name": "isConfirmedByRequiredFriends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2647, - "src": "2923:28:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 2578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2923:38:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2963:39:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - }, - "value": "Recovery has not enough confirmations" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", - "typeString": "literal_string \"Recovery has not enough confirmations\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2915:7:19", - "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": "2915:88:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2581, - "nodeType": "ExpressionStatement", - "src": "2915:88:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2582, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3013:10:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 2584, - "indexExpression": { - "argumentTypes": null, - "id": 2583, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2562, - "src": "3024:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3013:20:19", - "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": "3036:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3013:27:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "3013:27:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2592, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3100:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3092:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3092:16:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 2594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3110:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 2595, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2552, - "src": "3113:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2596, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "3119:4:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 2597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "3119:14:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 2598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3119:19:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2589, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3058:7:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "3058:33:19", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3058:81:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3141:28:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - }, - "value": "Could not execute recovery" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", - "typeString": "literal_string \"Could not execute recovery\"" - } - ], - "id": 2588, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "3050:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3050:120:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2602, - "nodeType": "ExpressionStatement", - "src": "3050:120:19" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", - "id": 2604, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2549, - "modifierName": { - "argumentTypes": null, - "id": 2548, - "name": "onlyFriend", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2438, - "src": "2653:10:19", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2653:10:19" - } - ], - "name": "recoverAccess", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2542, - "name": "prevOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2575:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2575:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2544, - "name": "oldOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2594:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2594:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2546, - "name": "newOwner", - "nodeType": "VariableDeclaration", - "scope": 2604, - "src": "2612:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2612:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2574:55:19" - }, - "returnParameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [], - "src": "2668:0:19" - }, - "scope": 2660, - "src": "2552:625:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2646, - "nodeType": "Block", - "src": "3449:294:19", - "statements": [ - { - "assignments": [ - 2612 - ], - "declarations": [ - { - "constant": false, - "id": 2612, - "name": "confirmationCount", - "nodeType": "VariableDeclaration", - "scope": 2646, - "src": "3459:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2611, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3459:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2613, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "3459:25:19" - }, - { - "body": { - "id": 2642, - "nodeType": "Block", - "src": "3539:176:19", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2625, - "name": "isConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "3557:11:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 2627, - "indexExpression": { - "argumentTypes": null, - "id": 2626, - "name": "dataHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2606, - "src": "3569:8:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3557:21:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2631, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2628, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "3579:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2630, - "indexExpression": { - "argumentTypes": null, - "id": 2629, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3587:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3579:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3557:33:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2635, - "nodeType": "IfStatement", - "src": "3553:74:19", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3608:19:19", - "subExpression": { - "argumentTypes": null, - "id": 2632, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "3608:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2634, - "nodeType": "ExpressionStatement", - "src": "3608:19:19" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2636, - "name": "confirmationCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "3645:17:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2637, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "3666:9:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3645:30:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2641, - "nodeType": "IfStatement", - "src": "3641:63:19", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3700:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2610, - "id": 2640, - "nodeType": "Return", - "src": "3693:11:19" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2618, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3514:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2619, - "name": "friends", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2412, - "src": "3518:7:19", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3518:14:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3514:18:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2643, - "initializationExpression": { - "assignments": [ - 2615 - ], - "declarations": [ - { - "constant": false, - "id": 2615, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2643, - "src": "3499:9:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2614, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3499:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2617, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3511:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3499:13:19" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3534:3:19", - "subExpression": { - "argumentTypes": null, - "id": 2622, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2615, - "src": "3534:1:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2624, - "nodeType": "ExpressionStatement", - "src": "3534:3:19" - }, - "nodeType": "ForStatement", - "src": "3494:221:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3731:5:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2610, - "id": 2645, - "nodeType": "Return", - "src": "3724:12:19" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2647, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isConfirmedByRequiredFriends", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2606, - "name": "dataHash", - "nodeType": "VariableDeclaration", - "scope": 2647, - "src": "3376:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2605, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3376:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3375:18:19" - }, - "returnParameters": { - "id": 2610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2609, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2647, - "src": "3439:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2608, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3439:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3438:6:19" - }, - "scope": 2660, - "src": "3338:405:19", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2658, - "nodeType": "Block", - "src": "3970:39:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2655, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2649, - "src": "3997:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2654, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3987:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3987:15:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2653, - "id": 2657, - "nodeType": "Return", - "src": "3980:22:19" - } - ] - }, - "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2659, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDataHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2649, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2659, - "src": "3893:17:19", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2648, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3893:5:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3892:19:19" - }, - "returnParameters": { - "id": 2653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2652, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2659, - "src": "3957:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2651, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3957:7:19", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3956:9:19" - }, - "scope": 2660, - "src": "3872:137:19", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2661, - "src": "328:3683:19" - } - ], - "src": "0:4012:19" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.638Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json deleted file mode 100644 index b9b03acb..00000000 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ /dev/null @@ -1,5521 +0,0 @@ -{ - "contractName": "StateChannelModule", - "abi": [ - { - "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": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "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": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - }, - { - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506110a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063ba0bba401161005b578063ba0bba40146102ae578063e52cb36a146102b8578063f6cc15d0146102fa578063ffa1ad741461048d57610088565b80632b5000411461008d578063481c6a751461019d5780637de7edef146101e7578063a3f4df7e1461022b575b600080fd5b610187600480360360a08110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100ea57600080fd5b8201836020820111156100fc57600080fd5b8035906020019184600183028401116401000000008311171561011e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610510565b6040518082815260200191505060405180910390f35b6101a56106c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ec565b005b61023361085b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b6610894565b005b6102e4600480360360208110156102ce57600080fd5b810190808035906020019092919050505061089e565b6040518082815260200191505060405180910390f35b61048b600480360360c081101561031057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561035757600080fd5b82018360208201111561036957600080fd5b8035906020019184600183028401116401000000008311171561038b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108b6565b005b610495610b55565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104d55780820151818401526020810190506104ba565b50505050905090810190601f1680156105025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000601960f81b600060f81b30888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140185815260200184805190602001908083835b6020831061065c5780518252602082019150602081019050602083039250610639565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561068a57fe5b60ff1660f81b81526001018281526020019850505050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806110546026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110056024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b61089c610b8e565b565b60026020528060005260406000206000915090505481565b60006108c58787878787610510565b90506000600260008381526020019081526020016000205414610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b61095a8183610c95565b60016002600083815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610a1057fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610a50578082015181840152602081019050610a35565b50505050905090810190601f168015610a7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a9f57600080fd5b505af1158015610ab3573d6000803e3d6000fd5b505050506040513d6020811015610ac957600080fd5b8101908080519060200190929190505050610b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008090506000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0757600080fd5b505afa158015610d1b573d6000803e3d6000fd5b505050506040513d6020811015610d3157600080fd5b81019080805190602001909291905050509050600091505b80821015610f3e57610d5c868684610f46565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d6020811015610e2757600080fd5b8101908080519060200190929190505050610eaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611610f2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611029602b913960400191505060405180910390fd5b8293508180600101925050610d49565b505050505050565b600080600080610f568686610fd5565b80935081945082955050505060018784848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610fbf573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff6041820187015116935050925092509256fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465645369676e61747572657320617265206e6f74206f726465726564206279206f776e657220616464726573734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a72305820011097e8d7a7b3e1dcc57d8cb59beeae560a34698c149d8de283fc3993001b490029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063ba0bba401161005b578063ba0bba40146102ae578063e52cb36a146102b8578063f6cc15d0146102fa578063ffa1ad741461048d57610088565b80632b5000411461008d578063481c6a751461019d5780637de7edef146101e7578063a3f4df7e1461022b575b600080fd5b610187600480360360a08110156100a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100ea57600080fd5b8201836020820111156100fc57600080fd5b8035906020019184600183028401116401000000008311171561011e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff16906020019092919080359060200190929190505050610510565b6040518082815260200191505060405180910390f35b6101a56106c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610229600480360360208110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106ec565b005b61023361085b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610273578082015181840152602081019050610258565b50505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b6610894565b005b6102e4600480360360208110156102ce57600080fd5b810190808035906020019092919050505061089e565b6040518082815260200191505060405180910390f35b61048b600480360360c081101561031057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561035757600080fd5b82018360208201111561036957600080fd5b8035906020019184600183028401116401000000008311171561038b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803560ff169060200190929190803590602001909291908035906020019064010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184600183028401116401000000008311171561043957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108b6565b005b610495610b55565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104d55780820151818401526020810190506104ba565b50505050905090810190601f1680156105025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000601960f81b600060f81b30888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140185815260200184805190602001908083835b6020831061065c5780518252602082019150602081019050602083039250610639565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561068a57fe5b60ff1660f81b81526001018281526020019850505050505050505060405160208183030381529060405280519060200120905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610792576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806110546026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610818576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110056024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040518060400160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b61089c610b8e565b565b60026020528060005260406000206000915090505481565b60006108c58787878787610510565b90506000600260008381526020019081526020016000205414610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b61095a8183610c95565b60016002600083815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610a1057fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610a50578082015181840152602081019050610a35565b50505050905090810190601f168015610a7d5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a9f57600080fd5b505af1158015610ab3573d6000803e3d6000fd5b505050506040513d6020811015610ac957600080fd5b8101908080519060200190929190505050610b4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008090506000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0757600080fd5b505afa158015610d1b573d6000803e3d6000fd5b505050506040513d6020811015610d3157600080fd5b81019080805190602001909291905050509050600091505b80821015610f3e57610d5c868684610f46565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d6020811015610e2757600080fd5b8101908080519060200190929190505050610eaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1611610f2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611029602b913960400191505060405180910390fd5b8293508180600101925050610d49565b505050505050565b600080600080610f568686610fd5565b80935081945082955050505060018784848460405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610fbf573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff6041820187015116935050925092509256fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465645369676e61747572657320617265206e6f74206f726465726564206279206f776e657220616464726573734d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a72305820011097e8d7a7b3e1dcc57d8cb59beeae560a34698c149d8de283fc3993001b490029", - "sourceMap": "320:2886:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;320:2886:20;;;;;;;", - "deployedSourceMap": "320:2886:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;320:2886:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:336;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2868:336:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2868:336:20;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2868:336:20;;;;;;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;2868:336:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2868:336:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;270:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;383:52:20;;;:::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;383:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:65;;;:::i;:::-;;579:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;579:46:20;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1203:648;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1203:648:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1203:648:20;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1203:648:20;;;;;;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;1203:648:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1203:648:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1203:648:20;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1203:648:20;;;;;;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;1203:648:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;1203:648:20;;;;;;;;;;;;;;;:::i;:::-;;441: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;441:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:336;3078:7;3140:4;3135:10;;3152:1;3147:7;;3156:4;3162:2;3166:5;3173:4;3179:9;3190:5;3118: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;;;3118:78:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3118:78:20;;;3108:89;;;;;;3101:96;;2868:336;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:257:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o;383:52:20:-;;;;;;;;;;;;;;;;;;;:::o;673:65::-;719:12;:10;:12::i;:::-;673:65::o;579:46::-;;;;;;;;;;;;;;;;;:::o;1203:648::-;1427:23;1453:53;1472:2;1476:5;1483:4;1489:9;1500:5;1453:18;:53::i;:::-;1427:79;;1555:1;1524:10;:27;1535:15;1524:27;;;;;;;;;;;;:32;1516:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1599:38;1609:15;1626:10;1599:9;:38::i;:::-;1730:1;1700:10;:27;1711:15;1700:27;;;;;;;;;;;:31;;;;1749:7;;;;;;;;;;;:33;;;1783:2;1787:5;1794:4;1800:9;1749: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;1749:61:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1749:61:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1749:61:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1749:61:20;;;;;;;;;;;;;;;;1741:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1203:648;;;;;;;:::o;441:40::-;;;;;;;;;;;;;;;;;;;:::o;442:309:4:-;664:1;636:30;;644:7;;;;;;;;;;;636:30;;;628:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:10;709:7;;:35;;;;;;;;;;;;;;;;;;442:309::o;1857:733:20:-;2022:17;2050:1;2022:30;;2062:20;2092:9;2111:17;2152:7;;;;;;;;;;;2131:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2131:45:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2131:45:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2131:45:20;;;;;;;;;;;;;;;;2111:65;;2237:1;2233:5;;2228:356;2244:9;2240:1;:13;2228:356;;;2289:42;2300:15;2317:10;2329:1;2289:10;:42::i;:::-;2274:57;;2374:7;;;;;;;;;;;2353:38;;;2392:12;2353:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2353:52:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2353:52:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2353:52:20;;;;;;;;;;;;;;;;2345:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2478:9;2463:24;;:12;:24;;;2455:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2561:12;2549:24;;2255:3;;;;;;;2228:356;;;1857:733;;;;;;:::o;485:347:12:-;649:7;673;690:9;709;740:37;755:16;773:3;740:14;:37::i;:::-;728:49;;;;;;;;;;;;794:31;804:11;817:1;820;823;794:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;794:31:12;;;;;;;;787:38;;;;;485:347;;;;;:::o;1220:921::-;1329:7;1338:9;1349;1649:3;1643:4;1639:14;1711:4;1697:12;1693:23;1681:10;1677:40;1671:47;1666:52;;1776:4;1762:12;1758:23;1746:10;1742:40;1736:47;1731:52;;2120:4;2111;2097:12;2093:23;2081:10;2077:40;2071:47;2067:58;2062:63;;1605:530;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\nimport \"../base/Module.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/SignatureDecoder.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \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", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "exportedSymbols": { - "StateChannelModule": [ - 2851 - ] - }, - "id": 2852, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2662, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2663, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1021, - "src": "24:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2664, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1797, - "src": "53:34:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "../common/SignatureDecoder.sol", - "id": 2665, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1938, - "src": "88:40:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2666, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "351:6:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2667, - "nodeType": "InheritanceSpecifier", - "src": "351:6:20" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2668, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1937, - "src": "359:16:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1937", - "typeString": "contract SignatureDecoder" - } - }, - "id": 2669, - "nodeType": "InheritanceSpecifier", - "src": "359:16:20" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881, - 1937 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2851, - "linearizedBaseContracts": [ - 2851, - 1937, - 1020, - 1839, - 1881 - ], - "name": "StateChannelModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2672, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "383:52:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "383:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "413:22:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", - "typeString": "literal_string \"State Channel Module\"" - }, - "value": "State Channel Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2675, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "441:40:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2673, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:7:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2679, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "579:46:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 2678, - "keyType": { - "id": 2676, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "588:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "579:28:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 2677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "599:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2685, - "nodeType": "Block", - "src": "709:29:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2682, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "719:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:12:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2684, - "nodeType": "ExpressionStatement", - "src": "719:12:20" - } - ] - }, - "documentation": "@dev Setup function sets manager", - "id": 2686, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2680, - "nodeType": "ParameterList", - "parameters": [], - "src": "687:2:20" - }, - "returnParameters": { - "id": 2681, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:20" - }, - "scope": 2851, - "src": "673:65:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2742, - "nodeType": "Block", - "src": "1417:434:20", - "statements": [ - { - "assignments": [ - 2702 - ], - "declarations": [ - { - "constant": false, - "id": 2702, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2742, - "src": "1427:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2701, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1427:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2710, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2704, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2688, - "src": "1472:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "1476:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "1483:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2707, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "1489:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2708, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "1500:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2703, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "1453:18:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1453:53:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1427:79:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2712, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "1524:10:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2714, - "indexExpression": { - "argumentTypes": null, - "id": 2713, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1535:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1524:27:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1555:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1524:32:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1558:30:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - }, - "value": "Transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - } - ], - "id": 2711, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1516:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1516:73:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2719, - "nodeType": "ExpressionStatement", - "src": "1516:73:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2721, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1609:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2722, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "1626:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2720, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "1599:9:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1599:38:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2724, - "nodeType": "ExpressionStatement", - "src": "1599:38:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2725, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "1700:10:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2727, - "indexExpression": { - "argumentTypes": null, - "id": 2726, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1711:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1700:27:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1730:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1700:31:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "1700:31:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2734, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2688, - "src": "1783:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2735, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "1787:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2736, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "1794:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2737, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "1800:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "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_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1749:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "1749:33:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1749:61:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1812:31:20", - "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": 2731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1741:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1741:103:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2741, - "nodeType": "ExpressionStatement", - "src": "1741:103:20" - } - ] - }, - "documentation": "@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})", - "id": 2743, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2688, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1237:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2690, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1258:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1258:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2692, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1282:17:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2691, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1282:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2694, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1310:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2693, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "1310:14:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2696, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1345:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2698, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1368:23:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2697, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1368:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1227:170:20" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "1417:0:20" - }, - "scope": 2851, - "src": "1203:648:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2815, - "nodeType": "Block", - "src": "1960:630:20", - "statements": [ - { - "assignments": [ - 2751 - ], - "declarations": [ - { - "constant": false, - "id": 2751, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2022:17:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2022:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2755, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2050:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2042:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2042:10:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:30:20" - }, - { - "assignments": [ - 2757 - ], - "declarations": [ - { - "constant": false, - "id": 2757, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2062:20:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2062:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2758, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2062:20:20" - }, - { - "assignments": [ - 2760 - ], - "declarations": [ - { - "constant": false, - "id": 2760, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2092:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2092:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2761, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2092:9:20" - }, - { - "assignments": [ - 2763 - ], - "declarations": [ - { - "constant": false, - "id": 2763, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2111:17:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2111:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2771, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2766, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2152:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2144:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2144:16:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2764, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2131:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2131:30:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getThreshold", - "nodeType": "MemberAccess", - "referencedDeclaration": 1726, - "src": "2131:43:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2131:45:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2111:65:20" - }, - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "2260:324:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2782, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2274:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2784, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "2300:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2785, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "2317:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2786, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2329:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2783, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1921, - "src": "2289:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2289:42:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2274:57:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2789, - "nodeType": "ExpressionStatement", - "src": "2274:57:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2797, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2392:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2793, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2374:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2366:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2366:16:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2791, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2353:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2353:30:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2353:38:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2353:52:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2407:33:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 2790, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2345:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2345:96:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2801, - "nodeType": "ExpressionStatement", - "src": "2345:96:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2803, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2463:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2804, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "2478:9:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2463:24:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2489:45:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 2802, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2455:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2455:80:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "2455:80:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2809, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "2549:9:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2810, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2561:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2549:24:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "2549:24:20" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2240:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2777, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2763, - "src": "2244:9:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2240:13:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2814, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2772, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2233:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2237:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2233:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "2233:5:20" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2255:3:20", - "subExpression": { - "argumentTypes": null, - "id": 2779, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2255:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2781, - "nodeType": "ExpressionStatement", - "src": "2255:3:20" - }, - "nodeType": "ForStatement", - "src": "2228:356:20" - } - ] - }, - "documentation": null, - "id": 2816, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2745, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "1876:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2744, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1876:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2747, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "1901:23:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1901:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1875:50:20" - }, - "returnParameters": { - "id": 2749, - "nodeType": "ParameterList", - "parameters": [], - "src": "1960:0:20" - }, - "scope": 2851, - "src": "1857:733:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2849, - "nodeType": "Block", - "src": "3091:113:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3135:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3135:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3152:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3147:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3147:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2840, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4424, - "src": "3156:4:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2851", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2841, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2818, - "src": "3162:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2842, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "3166:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2843, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "3173:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "3179:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2845, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2826, - "src": "3190:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2851", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2832, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "3118:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3118:16:20", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3118:78:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2831, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3108:9:20", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3108:89:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2830, - "id": 2848, - "nodeType": "Return", - "src": "3101:96:20" - } - ] - }, - "documentation": "@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.", - "id": 2850, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2818, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2905:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2817, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2905:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2820, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2926:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2926:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2950:17:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2821, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2950:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2978:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2823, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "2978:14:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2826, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "3013:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2825, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3013:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2895:137:20" - }, - "returnParameters": { - "id": 2830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2829, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "3078:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2828, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3078:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3077:9:20" - }, - "scope": 2851, - "src": "2868:336:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2852, - "src": "320:2886:20" - } - ], - "src": "0:3207:20" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", - "exportedSymbols": { - "StateChannelModule": [ - 2851 - ] - }, - "id": 2852, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2662, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2663, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1021, - "src": "24:28:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2664, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1797, - "src": "53:34:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SignatureDecoder.sol", - "file": "../common/SignatureDecoder.sol", - "id": 2665, - "nodeType": "ImportDirective", - "scope": 2852, - "sourceUnit": 1938, - "src": "88:40:20", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2666, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "351:6:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2667, - "nodeType": "InheritanceSpecifier", - "src": "351:6:20" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2668, - "name": "SignatureDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1937, - "src": "359:16:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureDecoder_$1937", - "typeString": "contract SignatureDecoder" - } - }, - "id": 2669, - "nodeType": "InheritanceSpecifier", - "src": "359:16:20" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881, - 1937 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 2851, - "linearizedBaseContracts": [ - 2851, - 1937, - 1020, - 1839, - 1881 - ], - "name": "StateChannelModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2672, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "383:52:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "383:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "413:22:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", - "typeString": "literal_string \"State Channel Module\"" - }, - "value": "State Channel Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2675, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "441:40:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2673, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:20", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:7:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2679, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 2851, - "src": "579:46:20", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 2678, - "keyType": { - "id": 2676, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "588:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "579:28:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 2677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "599:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2685, - "nodeType": "Block", - "src": "709:29:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2682, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "719:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:12:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2684, - "nodeType": "ExpressionStatement", - "src": "719:12:20" - } - ] - }, - "documentation": "@dev Setup function sets manager", - "id": 2686, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2680, - "nodeType": "ParameterList", - "parameters": [], - "src": "687:2:20" - }, - "returnParameters": { - "id": 2681, - "nodeType": "ParameterList", - "parameters": [], - "src": "709:0:20" - }, - "scope": 2851, - "src": "673:65:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2742, - "nodeType": "Block", - "src": "1417:434:20", - "statements": [ - { - "assignments": [ - 2702 - ], - "declarations": [ - { - "constant": false, - "id": 2702, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2742, - "src": "1427:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2701, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1427:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2710, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2704, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2688, - "src": "1472:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2705, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "1476:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2706, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "1483:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2707, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "1489:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2708, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "1500:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2703, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "1453:18:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1453:53:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1427:79:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2712, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "1524:10:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2714, - "indexExpression": { - "argumentTypes": null, - "id": 2713, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1535:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1524:27:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1555:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1524:32:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1558:30:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - }, - "value": "Transaction already executed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", - "typeString": "literal_string \"Transaction already executed\"" - } - ], - "id": 2711, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1516:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1516:73:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2719, - "nodeType": "ExpressionStatement", - "src": "1516:73:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2721, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1609:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2722, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "1626:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2720, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "1599:9:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes32,bytes memory) view" - } - }, - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1599:38:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2724, - "nodeType": "ExpressionStatement", - "src": "1599:38:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2725, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2679, - "src": "1700:10:20", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 2727, - "indexExpression": { - "argumentTypes": null, - "id": 2726, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "1711:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1700:27:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1730:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1700:31:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "1700:31:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2734, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2688, - "src": "1783:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2735, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "1787:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2736, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "1794:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2737, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "1800:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "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_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "1749:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "1749:33:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 2738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1749:61:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1812:31:20", - "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": 2731, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1741:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1741:103:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2741, - "nodeType": "ExpressionStatement", - "src": "1741:103:20" - } - ] - }, - "documentation": "@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})", - "id": 2743, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "execTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2688, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1237:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1237:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2690, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1258:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1258:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2692, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1282:17:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2691, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1282:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2694, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1310:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2693, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "1310:14:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2696, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1345:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2698, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2743, - "src": "1368:23:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2697, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1368:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1227:170:20" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "1417:0:20" - }, - "scope": 2851, - "src": "1203:648:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2815, - "nodeType": "Block", - "src": "1960:630:20", - "statements": [ - { - "assignments": [ - 2751 - ], - "declarations": [ - { - "constant": false, - "id": 2751, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2022:17:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2022:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2755, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2050:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2042:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2042:10:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:30:20" - }, - { - "assignments": [ - 2757 - ], - "declarations": [ - { - "constant": false, - "id": 2757, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2062:20:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2756, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2062:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2758, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2062:20:20" - }, - { - "assignments": [ - 2760 - ], - "declarations": [ - { - "constant": false, - "id": 2760, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2092:9:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2092:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2761, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2092:9:20" - }, - { - "assignments": [ - 2763 - ], - "declarations": [ - { - "constant": false, - "id": 2763, - "name": "threshold", - "nodeType": "VariableDeclaration", - "scope": 2815, - "src": "2111:17:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2111:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2771, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2766, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2152:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2144:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2144:16:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2764, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2131:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2131:30:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getThreshold", - "nodeType": "MemberAccess", - "referencedDeclaration": 1726, - "src": "2131:43:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2131:45:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2111:65:20" - }, - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "2260:324:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2782, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2274:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2784, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "2300:15:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2785, - "name": "signatures", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2747, - "src": "2317:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2786, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2329:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2783, - "name": "recoverKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1921, - "src": "2289:10:20", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2289:42:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2274:57:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2789, - "nodeType": "ExpressionStatement", - "src": "2274:57:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2797, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2392:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2793, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2374:7:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2366:7:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2366:16:20", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2791, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2353:12:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2353:30:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2353:38:20", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2353:52:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 2799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2407:33:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - }, - "value": "Signature not provided by owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", - "typeString": "literal_string \"Signature not provided by owner\"" - } - ], - "id": 2790, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2345:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2345:96:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2801, - "nodeType": "ExpressionStatement", - "src": "2345:96:20" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2803, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2463:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 2804, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "2478:9:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2463:24:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2489:45:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - }, - "value": "Signatures are not ordered by owner address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", - "typeString": "literal_string \"Signatures are not ordered by owner address\"" - } - ], - "id": 2802, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2455:7:20", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2455:80:20", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "2455:80:20" - }, - { - "expression": { - "argumentTypes": null, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2809, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "2549:9:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2810, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "2561:12:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2549:24:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "2549:24:20" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2776, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2240:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2777, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2763, - "src": "2244:9:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2240:13:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2814, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2772, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2233:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2237:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2233:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "2233:5:20" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2255:3:20", - "subExpression": { - "argumentTypes": null, - "id": 2779, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2760, - "src": "2255:1:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2781, - "nodeType": "ExpressionStatement", - "src": "2255:3:20" - }, - "nodeType": "ForStatement", - "src": "2228:356:20" - } - ] - }, - "documentation": null, - "id": 2816, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2745, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "1876:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2744, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1876:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2747, - "name": "signatures", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "1901:23:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2746, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1901:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1875:50:20" - }, - "returnParameters": { - "id": 2749, - "nodeType": "ParameterList", - "parameters": [], - "src": "1960:0:20" - }, - "scope": 2851, - "src": "1857:733:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2849, - "nodeType": "Block", - "src": "3091:113:20", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:4:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 2834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3135:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3135:10:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3152:1:20", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3147:4:20", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 2839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3147:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2840, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4424, - "src": "3156:4:20", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2851", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2841, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2818, - "src": "3162:2:20", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2842, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "3166:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2843, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "3173:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "3179:9:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2845, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2826, - "src": "3190:5:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2851", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2832, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4353, - "src": "3118:3:20", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3118:16:20", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3118:78:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2831, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4360, - "src": "3108:9:20", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3108:89:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 2830, - "id": 2848, - "nodeType": "Return", - "src": "3101:96:20" - } - ] - }, - "documentation": "@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.", - "id": 2850, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2818, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2905:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2817, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2905:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2820, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2926:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2926:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2950:17:20", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2821, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2950:5:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "2978:24:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 2823, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1802, - "src": "2978:14:20", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2826, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "3013:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2825, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3013:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2895:137:20" - }, - "returnParameters": { - "id": 2830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2829, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "3078:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2828, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3078:7:20", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3077:9:20" - }, - "scope": 2851, - "src": "2868:336:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2852, - "src": "320:2886:20" - } - ], - "src": "0:3207:20" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.641Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Token.json b/safe-contracts/build/contracts/Token.json deleted file mode 100644 index 0c13fbf3..00000000 --- a/safe-contracts/build/contracts/Token.json +++ /dev/null @@ -1,361 +0,0 @@ -{ - "contractName": "Token", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\nimport \"@gnosis.pm/mock-contract/contracts/MockContract.sol\";\ncontract Token {\n\tfunction transfer(address _to, uint value) public returns (bool);\n}\n", - "sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "exportedSymbols": { - "Token": [ - 2148 - ] - }, - "id": 2149, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2137, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:17" - }, - { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 2138, - "nodeType": "ImportDirective", - "scope": 2149, - "sourceUnit": 4352, - "src": "24:61:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2148, - "linearizedBaseContracts": [ - 2148 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2147, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2140, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "122:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "122:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "135:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "135:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "121:25:17" - }, - "returnParameters": { - "id": 2146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "163:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "163:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "162:6:17" - }, - "scope": 2148, - "src": "104:65:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2149, - "src": "86:85:17" - } - ], - "src": "0:172:17" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol", - "exportedSymbols": { - "Token": [ - 2148 - ] - }, - "id": 2149, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2137, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:17" - }, - { - "absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "file": "@gnosis.pm/mock-contract/contracts/MockContract.sol", - "id": 2138, - "nodeType": "ImportDirective", - "scope": 2149, - "sourceUnit": 4352, - "src": "24:61:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2148, - "linearizedBaseContracts": [ - 2148 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 2147, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2140, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "122:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "122:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "135:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "135:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "121:25:17" - }, - "returnParameters": { - "id": 2146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "163:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "163:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "162:6:17" - }, - "scope": 2148, - "src": "104:65:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2149, - "src": "86:85:17" - } - ], - "src": "0:172:17" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.635Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json deleted file mode 100644 index e90708c9..00000000 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ /dev/null @@ -1,4560 +0,0 @@ -{ - "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": "0x608060405234801561001057600080fd5b506111c3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638ab1d681116100665780638ab1d6811461027f578063a3f4df7e146102c3578063bd5b853b14610346578063e43252d7146103fe578063ffa1ad741461044257610093565b80632f2f3be1146100985780633af32abf14610195578063481c6a75146101f15780637de7edef1461023b575b600080fd5b61017b600480360360608110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100f557600080fd5b82018360208201111561010757600080fd5b8035906020019184600183028401116401000000008311171561012957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506104c5565b604051808215151515815260200191505060405180910390f35b6101d7600480360360208110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610879565b604051808215151515815260200191505060405180910390f35b6101f9610899565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027d6004803603602081101561025157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108bf565b005b6102c16004803603602081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a2e565b005b6102cb610bee565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030b5780820151818401526020810190506102f0565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fc6004803603602081101561035c57600080fd5b810190808035906020019064010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460208302840111640100000000831117156103ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610c27565b005b6104406004803603602081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d63565b005b61044a610fc7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048a57808201518184015260208101905061046f565b50505050905090810190601f1680156104b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561056657600080fd5b505afa15801561057a573d6000803e3d6000fd5b505050506040513d602081101561059057600080fd5b81019080805190602001909291905050506105f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061112c6025913960400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610698576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806111516021913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561073657fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561077657808201518184015260208101905061075b565b50505050905090810190601f1680156107a35780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b505050506040513d60208110156107ef57600080fd5b8101908080519060200190929190505050610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111086024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ad4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040518060400160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b610c2f611000565b60008090505b8151811015610d5f576000828281518110610c4c57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080600101915050610c35565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572546172676574206163636f756e74206973206e6f742077686974656c69737465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058209729b689f1f4be1e6dc794896f5d0cbac87b24a9e729072814545e7098d75a960029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638ab1d681116100665780638ab1d6811461027f578063a3f4df7e146102c3578063bd5b853b14610346578063e43252d7146103fe578063ffa1ad741461044257610093565b80632f2f3be1146100985780633af32abf14610195578063481c6a75146101f15780637de7edef1461023b575b600080fd5b61017b600480360360608110156100ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156100f557600080fd5b82018360208201111561010757600080fd5b8035906020019184600183028401116401000000008311171561012957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506104c5565b604051808215151515815260200191505060405180910390f35b6101d7600480360360208110156101ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610879565b604051808215151515815260200191505060405180910390f35b6101f9610899565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61027d6004803603602081101561025157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108bf565b005b6102c16004803603602081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a2e565b005b6102cb610bee565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030b5780820151818401526020810190506102f0565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103fc6004803603602081101561035c57600080fd5b810190808035906020019064010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460208302840111640100000000831117156103ad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610c27565b005b6104406004803603602081101561041457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d63565b005b61044a610fc7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561048a57808201518184015260208101905061046f565b50505050905090810190601f1680156104b75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561056657600080fd5b505afa15801561057a573d6000803e3d6000fd5b505050506040513d602081101561059057600080fd5b81019080805190602001909291905050506105f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061112c6025913960400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610698576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806111516021913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561073657fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561077657808201518184015260208101905061075b565b50505050905090810190601f1680156107a35780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b505050506040513d60208110156107ef57600080fd5b8101908080519060200190929190505050610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111086024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ad4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040518060400160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b610c2f611000565b60008090505b8151811015610d5f576000828281518110610c4c57fe5b60200260200101519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080600101915050610c35565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111726026913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572546172676574206163636f756e74206973206e6f742077686974656c69737465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572a165627a7a723058209729b689f1f4be1e6dc794896f5d0cbac87b24a9e729072814545e7098d75a960029", - "sourceMap": "311:2240:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:2240:21;;;;;;;", - "deployedSourceMap": "311:2240:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:2240:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:518;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2031:518:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2031:518:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2031:518:21;;;;;;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;2031:518:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2031:518:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;520:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;520:46:21;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;270:28:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;626:257:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;1575:202:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1575:202:21;;;;;;;;;;;;;;;;;;;:::i;:::-;;353:48;;;:::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;353:48:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:314;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;689:314:21;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;689:314:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;689:314:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;689:314:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;689:314:21;;;;;;;;;;;;;;;:::i;:::-;;1152:269;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1152:269:21;;;;;;;;;;;;;;;;;;;:::i;:::-;;407: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;407:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:518;2137:4;2275:7;;;;;;;;;;;2254:38;;;2293:10;2254:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2254:50:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2254:50:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2254:50:21;;;;;;;;;;;;;;;;2246:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2364:13;:17;2378:2;2364:17;;;;;;;;;;;;;;;;;;;;;;;;;2356:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2437:7;;;;;;;;;;;:33;;;2471:2;2475:5;2482:4;2488:19;2437: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;2437:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2437:71:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2437:71:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2437:71:21;;;;;;;;;;;;;;;;2429:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:518;;;;;:::o;520:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;270:28:4:-;;;;;;;;;;;;;:::o;626:257:9:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o;1575:202:21:-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:13:21;:22;1691:7;1677:22;;;;;;;;;;;;;;;;;;;;;;;;;1669:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:5;1740:13;:22;1754:7;1740:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1575:202;:::o;353:48::-;;;;;;;;;;;;;;;;;;;:::o;689:314::-;760:12;:10;:12::i;:::-;787:9;799:1;787:13;;782:215;806:8;:15;802:1;:19;782:215;;;842:15;860:8;869:1;860:11;;;;;;;;;;;;;;842:29;;912:1;893:21;;:7;:21;;;;885:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:4;957:13;:22;971:7;957:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;782:215;823:3;;;;;;;782:215;;;;689:314;:::o;1152:269::-;367:7:4;;;;;;;;;;;345:30;;:10;:30;;;337:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:1:21;1249:21;;:7;:21;;;;1241:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1318:13;:22;1332:7;1318:22;;;;;;;;;;;;;;;;;;;;;;;;;1317:23;1309:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:4;1385:13;:22;1399:7;1385:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1152:269;:::o;407:40::-;;;;;;;;;;;;;;;;;;;:::o;442:309:4:-;664:1;636:30;;644:7;;;;;;;;;;;636:30;;;628:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:10;709:7;;:35;;;;;;;;;;;;;;;;;;442:309::o", - "source": "pragma solidity ^0.5.0;\nimport \"../base/Module.sol\";\nimport \"../base/ModuleManager.sol\";\nimport \"../base/OwnerManager.sol\";\nimport \"../common/Enum.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.1.0\";\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[] memory accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != address(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 != address(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 memory data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(address(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": "/home/ger/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "ast": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "exportedSymbols": { - "WhitelistModule": [ - 3011 - ] - }, - "id": 3012, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2853, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2854, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1021, - "src": "24:28:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2855, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1331, - "src": "53:35:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2856, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1797, - "src": "89:34:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2857, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1804, - "src": "124:28:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2858, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "339:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2859, - "nodeType": "InheritanceSpecifier", - "src": "339:6:21" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3011, - "linearizedBaseContracts": [ - 3011, - 1020, - 1839, - 1881 - ], - "name": "WhitelistModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2862, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "353:48:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2860, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57686974656c697374204d6f64756c65", - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:18:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", - "typeString": "literal_string \"Whitelist Module\"" - }, - "value": "Whitelist Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2865, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "407:40:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2863, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "407:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:7:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2869, - "name": "isWhitelisted", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "520:46:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2868, - "keyType": { - "id": 2866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "529:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "520:25:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2867, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "540:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2912, - "nodeType": "Block", - "src": "750:253:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2875, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "760:10:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "760:12:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2877, - "nodeType": "ExpressionStatement", - "src": "760:12:21" - }, - { - "body": { - "id": 2910, - "nodeType": "Block", - "src": "828:169:21", - "statements": [ - { - "assignments": [ - 2890 - ], - "declarations": [ - { - "constant": false, - "id": 2890, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "842:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "842:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2894, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2891, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "860:8:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2893, - "indexExpression": { - "argumentTypes": null, - "id": 2892, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "869:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "860:11:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "842:29:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2896, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "893:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "912:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "904:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "904:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "893:21:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "916: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": 2895, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "885:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "885:58:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2903, - "nodeType": "ExpressionStatement", - "src": "885:58:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2904, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "957:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2906, - "indexExpression": { - "argumentTypes": null, - "id": 2905, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "971:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "957:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "982:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "957:29:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2909, - "nodeType": "ExpressionStatement", - "src": "957:29:21" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2882, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "802:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2883, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "806:8:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "806:15:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "802:19:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2911, - "initializationExpression": { - "assignments": [ - 2879 - ], - "declarations": [ - { - "constant": false, - "id": 2879, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2911, - "src": "787:9:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "787:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2881, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "787:13:21" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "823:3:21", - "subExpression": { - "argumentTypes": null, - "id": 2886, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "823:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2888, - "nodeType": "ExpressionStatement", - "src": "823:3:21" - }, - "nodeType": "ForStatement", - "src": "782:215:21" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2913, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2873, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2872, - "name": "accounts", - "nodeType": "VariableDeclaration", - "scope": 2913, - "src": "704:25:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "704:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2871, - "length": null, - "nodeType": "ArrayTypeName", - "src": "704:9:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "703:27:21" - }, - "returnParameters": { - "id": 2874, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:0:21" - }, - "scope": 3011, - "src": "689:314:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2943, - "nodeType": "Block", - "src": "1231:190:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2921, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1249:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1268:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1260:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1260:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1249:21:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1272: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": 2920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1241:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1241:58:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2928, - "nodeType": "ExpressionStatement", - "src": "1241:58:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1317:23:21", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2930, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1318:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2932, - "indexExpression": { - "argumentTypes": null, - "id": 2931, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1332:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1318:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1342: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": 2929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1309:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1309:66:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2936, - "nodeType": "ExpressionStatement", - "src": "1309:66:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2937, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1385:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2939, - "indexExpression": { - "argumentTypes": null, - "id": 2938, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1399:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1385:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1410:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1385:29:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2942, - "nodeType": "ExpressionStatement", - "src": "1385: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": 2944, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2918, - "modifierName": { - "argumentTypes": null, - "id": 2917, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1216:10:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1216:10:21" - } - ], - "name": "addToWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2915, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1176:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2914, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1176:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1175:17:21" - }, - "returnParameters": { - "id": 2919, - "nodeType": "ParameterList", - "parameters": [], - "src": "1231:0:21" - }, - "scope": 3011, - "src": "1152:269:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2964, - "nodeType": "Block", - "src": "1659:118:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2952, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1677:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2954, - "indexExpression": { - "argumentTypes": null, - "id": 2953, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2946, - "src": "1691:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1677:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1701: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": 2951, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1669:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1669:61:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2957, - "nodeType": "ExpressionStatement", - "src": "1669:61:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2958, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1740:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2960, - "indexExpression": { - "argumentTypes": null, - "id": 2959, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2946, - "src": "1754:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1740:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:5:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1740:30:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1740: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": 2965, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2949, - "modifierName": { - "argumentTypes": null, - "id": 2948, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1644:10:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1644:10:21" - } - ], - "name": "removeFromWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2965, - "src": "1604:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1604:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1603:17:21" - }, - "returnParameters": { - "id": 2950, - "nodeType": "ParameterList", - "parameters": [], - "src": "1659:0:21" - }, - "scope": 3011, - "src": "1575:202:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2147:402:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2293:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2293:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2979, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2275:7:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2267:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2267:16:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2977, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2254:12:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2254:30:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2254:38:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2254:50:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2306: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": 2976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2246:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2246:100:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2988, - "nodeType": "ExpressionStatement", - "src": "2246:100:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2990, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "2364:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2992, - "indexExpression": { - "argumentTypes": null, - "id": 2991, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2967, - "src": "2378:2:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2364:17:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2383: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": 2989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2356:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2356:63:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2356:63:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2999, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2967, - "src": "2471:2:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3000, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "2475:5:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3001, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "2482:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3002, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2488:4:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 3003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2488:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 3004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2488:19:21", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "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_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2997, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2437:7:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2437:33:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 3005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2437:71:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2510: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": 2996, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2429:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2429:113:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2429: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": 3010, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2967, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2059:10:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2059:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2969, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2071:13:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2968, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2086:17:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2970, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2086:5:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2058:46:21" - }, - "returnParameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2974, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2137:4:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2973, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2137:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2136:6:21" - }, - "scope": 3011, - "src": "2031:518:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3012, - "src": "311:2240:21" - } - ], - "src": "0:2552:21" - }, - "legacyAST": { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", - "exportedSymbols": { - "WhitelistModule": [ - 3011 - ] - }, - "id": 3012, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2853, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/Module.sol", - "file": "../base/Module.sol", - "id": 2854, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1021, - "src": "24:28:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol", - "file": "../base/ModuleManager.sol", - "id": 2855, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1331, - "src": "53:35:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol", - "file": "../base/OwnerManager.sol", - "id": 2856, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1797, - "src": "89:34:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol", - "file": "../common/Enum.sol", - "id": 2857, - "nodeType": "ImportDirective", - "scope": 3012, - "sourceUnit": 1804, - "src": "124:28:21", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2858, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1020, - "src": "339:6:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$1020", - "typeString": "contract Module" - } - }, - "id": 2859, - "nodeType": "InheritanceSpecifier", - "src": "339:6:21" - } - ], - "contractDependencies": [ - 1020, - 1839, - 1881 - ], - "contractKind": "contract", - "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 3011, - "linearizedBaseContracts": [ - 3011, - 1020, - 1839, - 1881 - ], - "name": "WhitelistModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2862, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "353:48:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2860, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "57686974656c697374204d6f64756c65", - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:18:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", - "typeString": "literal_string \"Whitelist Module\"" - }, - "value": "Whitelist Module" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2865, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "407:40:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2863, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "407:6:21", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e312e30", - "id": 2864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:7:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa7cdbe2cce2ec7b606b0e199ddd9b264a6e645e767fb8479a7917dcd1b8693f", - "typeString": "literal_string \"0.1.0\"" - }, - "value": "0.1.0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 2869, - "name": "isWhitelisted", - "nodeType": "VariableDeclaration", - "scope": 3011, - "src": "520:46:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 2868, - "keyType": { - "id": 2866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "529:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "520:25:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 2867, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "540:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2912, - "nodeType": "Block", - "src": "750:253:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2875, - "name": "setManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "760:10:21", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 2876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "760:12:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2877, - "nodeType": "ExpressionStatement", - "src": "760:12:21" - }, - { - "body": { - "id": 2910, - "nodeType": "Block", - "src": "828:169:21", - "statements": [ - { - "assignments": [ - 2890 - ], - "declarations": [ - { - "constant": false, - "id": 2890, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "842:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "842:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2894, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2891, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "860:8:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2893, - "indexExpression": { - "argumentTypes": null, - "id": 2892, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "869:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "860:11:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "842:29:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2896, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "893:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "912:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "904:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "904:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "893:21:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "916: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": 2895, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "885:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "885:58:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2903, - "nodeType": "ExpressionStatement", - "src": "885:58:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2904, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "957:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2906, - "indexExpression": { - "argumentTypes": null, - "id": 2905, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "971:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "957:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "982:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "957:29:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2909, - "nodeType": "ExpressionStatement", - "src": "957:29:21" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2882, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "802:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2883, - "name": "accounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "806:8:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "806:15:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "802:19:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2911, - "initializationExpression": { - "assignments": [ - 2879 - ], - "declarations": [ - { - "constant": false, - "id": 2879, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2911, - "src": "787:9:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2878, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "787:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2881, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "787:13:21" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "823:3:21", - "subExpression": { - "argumentTypes": null, - "id": 2886, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "823:1:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2888, - "nodeType": "ExpressionStatement", - "src": "823:3:21" - }, - "nodeType": "ForStatement", - "src": "782:215:21" - } - ] - }, - "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2913, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setup", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2873, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2872, - "name": "accounts", - "nodeType": "VariableDeclaration", - "scope": 2913, - "src": "704:25:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2870, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "704:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2871, - "length": null, - "nodeType": "ArrayTypeName", - "src": "704:9:21", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "703:27:21" - }, - "returnParameters": { - "id": 2874, - "nodeType": "ParameterList", - "parameters": [], - "src": "750:0:21" - }, - "scope": 3011, - "src": "689:314:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2943, - "nodeType": "Block", - "src": "1231:190:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2921, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1249:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1268:1:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1260:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1260:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1249:21:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1272: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": 2920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1241:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1241:58:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2928, - "nodeType": "ExpressionStatement", - "src": "1241:58:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1317:23:21", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2930, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1318:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2932, - "indexExpression": { - "argumentTypes": null, - "id": 2931, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1332:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1318:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1342: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": 2929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1309:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1309:66:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2936, - "nodeType": "ExpressionStatement", - "src": "1309:66:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2937, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1385:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2939, - "indexExpression": { - "argumentTypes": null, - "id": 2938, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2915, - "src": "1399:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1385:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1410:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1385:29:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2942, - "nodeType": "ExpressionStatement", - "src": "1385: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": 2944, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2918, - "modifierName": { - "argumentTypes": null, - "id": 2917, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1216:10:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1216:10:21" - } - ], - "name": "addToWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2915, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1176:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2914, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1176:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1175:17:21" - }, - "returnParameters": { - "id": 2919, - "nodeType": "ParameterList", - "parameters": [], - "src": "1231:0:21" - }, - "scope": 3011, - "src": "1152:269:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2964, - "nodeType": "Block", - "src": "1659:118:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2952, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1677:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2954, - "indexExpression": { - "argumentTypes": null, - "id": 2953, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2946, - "src": "1691:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1677:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1701: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": 2951, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "1669:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1669:61:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2957, - "nodeType": "ExpressionStatement", - "src": "1669:61:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 2962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2958, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "1740:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2960, - "indexExpression": { - "argumentTypes": null, - "id": 2959, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2946, - "src": "1754:7:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1740:22:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1765:5:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1740:30:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2963, - "nodeType": "ExpressionStatement", - "src": "1740: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": 2965, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2949, - "modifierName": { - "argumentTypes": null, - "id": 2948, - "name": "authorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1644:10:21", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1644:10:21" - } - ], - "name": "removeFromWhitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 2965, - "src": "1604:15:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1604:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1603:17:21" - }, - "returnParameters": { - "id": 2950, - "nodeType": "ParameterList", - "parameters": [], - "src": "1659:0:21" - }, - "scope": 3011, - "src": "1575:202:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2147:402:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4366, - "src": "2293:3:21", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2293:10:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2979, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2275:7:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - ], - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2267:7:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2267:16:21", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 2977, - "name": "OwnerManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "2254:12:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1796_$", - "typeString": "type(contract OwnerManager)" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2254:30:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1796", - "typeString": "contract OwnerManager" - } - }, - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1746, - "src": "2254:38:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2254:50:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2306: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": 2976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2246:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2246:100:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2988, - "nodeType": "ExpressionStatement", - "src": "2246:100:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2990, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "2364:13:21", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2992, - "indexExpression": { - "argumentTypes": null, - "id": 2991, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2967, - "src": "2378:2:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2364:17:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2383: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": 2989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2356:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2356:63:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2356:63:21" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2999, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2967, - "src": "2471:2:21", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3000, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "2475:5:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3001, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "2482:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3002, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "2488:4:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$1803_$", - "typeString": "type(contract Enum)" - } - }, - "id": 3003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 1802, - "src": "2488:14:21", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$1802_$", - "typeString": "type(enum Enum.Operation)" - } - }, - "id": 3004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2488:19:21", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$1802", - "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_$1802", - "typeString": "enum Enum.Operation" - } - ], - "expression": { - "argumentTypes": null, - "id": 2997, - "name": "manager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "2437:7:21", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1330", - "typeString": "contract ModuleManager" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1256, - "src": "2437:33:21", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$1802_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" - } - }, - "id": 3005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2437:71:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2510: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": 2996, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4369, - 4370 - ], - "referencedDeclaration": 4370, - "src": "2429:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2429:113:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2429: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": 3010, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "executeWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2967, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2059:10:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2059:7:21", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2969, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2071:13:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2968, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2071:7:21", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2971, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2086:17:21", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2970, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2086:5:21", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2058:46:21" - }, - "returnParameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2974, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2137:4:21", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2973, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2137:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2136:6:21" - }, - "scope": 3011, - "src": "2031:518:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3012, - "src": "311:2240:21" - } - ], - "src": "0:2552:21" - }, - "compiler": { - "name": "solc", - "version": "0.5.7+commit.6da8b019.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.2", - "updatedAt": "2019-04-12T12:46:18.643Z" -} \ No newline at end of file